大型 CSV · 实用指南
大型 CSV 文件的拆分方法
Excel 无法打开的 CSV,可以按数据行数、目标大小或列值拆分。本文简要说明工具选择和避免乱码的方法。
结论:根据拆分条件选择工具
小型的一次性文件可以用 Excel,重复的 Excel 工作可以用 Power Query;要在浏览器中直接拆分 50MiB 以下的 CSV,可以使用 LocaCSV。大型文件不适合靠复制粘贴手工拆分。
试用 CSV 拆分模拟
切换拆分方式,查看同一份 6 行示例 CSV 会生成哪些输出文件。
拆分前:orders.csv
6 个数据行133B
| 订单编号 | 门店 | 金额 |
|---|---|---|
| A001 | 北京 | 1200 |
| A002 | 上海 | 800 |
| A003 | 北京 | 1500 |
| A004 | 上海 | 600 |
| A005 | 北京 | 900 |
| A006 | 上海 | 1100 |
拆分后
拆成 3 个文件
orders_001.csv
2 个数据行63B
| 订单编号 | 门店 | 金额 |
|---|---|---|
| A001 | 北京 | 1200 |
| A002 | 上海 | 800 |
orders_001.csv2 个数据行63B
| 订单编号 | 门店 | 金额 |
|---|---|---|
| A001 | 北京 | 1200 |
| A002 | 上海 | 800 |
orders_002.csv
2 个数据行63B
| 订单编号 | 门店 | 金额 |
|---|---|---|
| A003 | 北京 | 1500 |
| A004 | 上海 | 600 |
orders_002.csv2 个数据行63B
| 订单编号 | 门店 | 金额 |
|---|---|---|
| A003 | 北京 | 1500 |
| A004 | 上海 | 600 |
orders_003.csv
2 个数据行63B
| 订单编号 | 门店 | 金额 |
|---|---|---|
| A005 | 北京 | 900 |
| A006 | 上海 | 1100 |
orders_003.csv2 个数据行63B
| 订单编号 | 门店 | 金额 |
|---|---|---|
| A005 | 北京 | 900 |
| A006 | 上海 | 1100 |
大型 CSV 无法打开的常见原因
CSV 虽然是纯文本,但打开它的软件仍有限制。Excel 一张工作表最多 1,048,576 行,较小的文件也可能因内存或数据结构而变慢。
- 数据行超过 Excel 工作表上限。
- 加载文件时可用内存不足。
- 分隔符或字符编码选择错误。
- 直接切割逗号或换行,破坏引号中的内容。
Excel、Power Query、Python、LocaCSV 对比
请根据文件大小、执行频率和能否维护代码来选择。
| 方法 | 适用场景 | 优点 | 注意事项 |
|---|---|---|---|
| Excel | 小型、只处理一次的文件 | 界面熟悉 | 行数上限和手工错误 |
| Power Query | 重复执行 Excel 导入 | 可重新运行已有步骤 | 输出多个 CSV 需额外设置 |
| Python | 大型或定期任务 | 容易自动化 | 需维护环境和代码 |
| LocaCSV | 快速拆分 50MiB 以下 CSV | 直接在浏览器中使用 | 最多 100 个输出;按值时限 1 列 |
Excel
- 适用场景
- 小型、只处理一次的文件
- 优点
- 界面熟悉
- 注意事项
- 行数上限和手工错误
Power Query
- 适用场景
- 重复执行 Excel 导入
- 优点
- 可重新运行已有步骤
- 注意事项
- 输出多个 CSV 需额外设置
Python
- 适用场景
- 大型或定期任务
- 优点
- 容易自动化
- 注意事项
- 需维护环境和代码
LocaCSV
- 适用场景
- 快速拆分 50MiB 以下 CSV
- 优点
- 直接在浏览器中使用
- 注意事项
- 最多 100 个输出;按值时限 1 列
使用 LocaCSV 拆分的步骤
如果预览中的列错位,请先修正分隔符或字符编码。
- 按行数或大小时打开 CSV 拆分;按列值时打开按值拆分,然后选择一个 CSV。
- 确认表头、编码、分隔符和预览。
- 输入每个文件的数据行数或目标大小;按值页面则选择一列。
- 拆分后核对行数,再下载 ZIP。
按列值拆分的方法
按值拆分会为所选列中的每个值建立一个 CSV。例如“门店”列有北京、上海、深圳,就会生成三个文件。
- 相同值的行会进入同一个输出文件。
- 空白值可以排除或输出到独立文件。
- 每次选择 1 列,最多输出 100 个文件。
行数与文件大小注意事项
LocaCSV 接受一个 50MiB 以下的 CSV。实际速度还会受到设备、每行长度和输出数量影响。
- 行数模式不计算表头,只计算每个文件中的数据行。
- 目标大小包含输出编码、BOM 和重复表头,不会切断单条记录。
- 保留源文件,并在使用输出前核对数据行数。
字符编码与乱码处理
中国大陆旧系统常见 GBK,LocaCSV 可手动选择 GB18030,但没有单独的 GBK 选项。先检查预览;若仍有乱码,请在本地转成 UTF-8 或 GB18030。
- 在预览中检查简体中文、全角标点和生僻字。
- 列错位时先检查分隔符。
- 编码不明时,查看源系统的导出设置。