跳到主要内容
PulsarKit

CSV拆分

把大CSV按相同行数切成几份,或按某一列的值每个值拆成一个文件;表头、分隔符和编码都会带到每个部分。

把文件拖到这里

.csv, .tsv, .txt · 最大300 MB

如何拆分文件

  1. 1

    拖入CSV文件

    编码和分隔符直接从文件本身识别,开始前不需要任何设置。

  2. 2

    选择按行数还是按列值

    导入程序每批有上限时,按相同行数分块;要把各个团队自己的行分给他们时,按列值每个值一个文件。

  3. 3

    拆分并下载ZIP

    各部分一起打包下载,按编号命名,或按其中包含的值命名。只有一个部分时,直接给出普通文件。

拆出的部分必须和原文件是同一种文件

拆分按定义就是无损操作,所以源文件确定的一切都会带到每个部分:同样的分隔符、同样的字符编码、同样的表头行。这一点比听起来更重要。从会计系统导出的文件如果是Windows-1251编码、用分号分隔,就必须以完全相同的形式导回需要它的系统;如果拆分工具悄悄把一切统一成UTF-8加逗号,拆出来的部分会被原来的导入程序拒绝,用户却完全不知道原因。包含逗号或换行的带引号字段会正确解析,输出时重新加上引号,所以带多行地址的记录永远不会被切成两半。

按列拆分,以及为什么有上限

按某一列的值给行分组,就能把全国客户名单拆成每个地区一个文件,或把员工导出表拆成每个部门一个文件。列值会用作文件名,所以文件系统不接受的字符(斜杠、冒号、引号和控制字符)会替换掉;两个不同的值清理后如果名字相同,仍会加上数字后缀分开保存。不同值的数量有硬性上限,一千个,在写入任何内容之前就会检查。否则,如果按一个本不想用来分组的列拆分,比如订单号,就会生成一个装着几十万个两行小文件的压缩包;等了半天才发现这一点,对谁都没有帮助。

重复表头

默认每个部分都带表头行,因为每个部分本身就应该是一个能用的CSV,可以在Excel中打开,也能交给同一个导入程序。如果这些部分之后还要重新拼接起来,重复的表头就会变成文件中间的数据行,所以提供了只在该出现的位置写表头的选项。文件编号用三位数字,这不是为了好看:按文本排序时part-002排在part-010前面,而part-2不会。

文件留在你的浏览器里

读取、解析、拆分和打包压缩包都在这个标签页里本地运行。大CSV通常是客户或交易的导出数据,其中任何内容都不会上传、缓存或保留在任何地方。

常见问题

输出文件怎么命名?

按行拆分得到source-part-001.csv及之后的编号,用三位数字,这样各部分能正确排序。按列拆分得到source-Value.csv,用的是清理后的列值。

每个部分都有表头行吗?

默认有,所以每个部分单独看都是有效的CSV。如果打算把各部分重新拼接起来,又不希望表头出现在文件中间,就关闭重复表头选项。

按列拆分最多能生成多少个文件?

最多一千个。超过这个数,拆分会在写入任何内容之前被拒绝,因为有几千个不同值的列,几乎总是选错了分组的列。

识别不出分隔符怎么办?

工具会直接告诉你,而不是给出错误的拆分结果。识别要求某个候选分隔符能得到一致、明确的字段数;如果两个候选不分上下,或者文件只有一列,就从列表里自己选择分隔符。

拆分后的文件能合并回去吗?

能。“CSV合并”就是做这个的;因为各部分保留了原来的分隔符和编码,合并回去后得到的是与原文件等价的文件。

CSV拆分有行数限制吗?

本站不设限制。每个部分可以包含1到500,000行,源文件只受浏览器内存容量的限制。

我的文件会上传吗?

不会。从识别编码到写入ZIP,一切都在这个浏览器标签页里完成,任何环节都不涉及服务器。

相关工具