CSV合并
列顺序不同、编码不同、偶尔多出一个字段的导出文件,也能合并成一个干净的CSV。
把文件拖到这里
.csv, .tsv, .txt · 最大300 MB
如何合并文件
- 1
拖入两个或更多CSV文件
一次最多二十个文件。每个文件的编码和分隔符单独识别,混在一起也没问题。
- 2
检查列是怎样对齐的
默认按列名对齐,允许列顺序不同。“完全一致”要求表头相同;“按位置”完全不看列名。
- 3
合并并下载CSV
返回的是一个文件,不是压缩包,分隔符和编码按你下一个系统的要求设置。
三种对齐列的方式,各自适合什么情况
按列名对齐就是人们通常说的合并:三月的导出文件列是id、name、email,四月的是name、email、id,两者都应该落进同样的三列。比较时忽略大小写和前后空格,所以" ID "和"id"算同一列。“完全一致”用于结构相同是硬性要求、而不只是期望的场合:出现不一致就停止合并,并按文件列出缺少和多出的列,要把数据交给监管机构的导入程序之前,需要的正是这个。“按位置”完全忽略表头,适合没有表头或表头不可靠的文件;这时如果列数不同,就停止合并,并给出两个文件各自的列数。
某个文件多了一列,不算错误
现实中最常见的情况是,有人在年中加了一个字段。按列名对齐时,这一列加到总列表的末尾,在它出现之前的行在这一列留空,同时提示你哪一列是后来才出现的。这几乎总比拒绝合并要好,而且可以撤回:你能在结果里看到这一列,并把它删掉。完全没有数据行的文件会被跳过并计数,不会中断整个合并。
混合编码,以及一项安全措施
每个输入文件单独检查,所以会计系统导出的Windows-1251文件能和网页应用导出的UTF-8文件顺利合并,两者里的西里尔字母都能保留。输出编码由你选择,默认是带BOM的UTF-8,这样Excel能正确打开结果。有一处是特意加的:以=、+、-或@开头的值,前面会加一个撇号,因为电子表格会把这样的值当作公式执行,而用不是你写的数据合并出来的文件,正是公式注入攻击最典型的场景。
全部在这个标签页里完成
每个文件都在你的浏览器里本地读取、解析和合并。不上传任何内容,这一点很重要,因为合并这一步往往会把多份零散的客户或交易导出数据汇集到一起。
常见问题
文件的列不一样怎么办?
默认按列名对齐,结果包含所有列的并集,按首次出现的顺序排列;来自缺少某列的文件的行,在这一列留空。提示里会列出只在后面的文件里出现的列。
怎么删除重复的行?
打开“去重”选项。比较时看每行的全部值,每组重复只保留第一次出现的那行,并报告去掉了多少重复行,方便你核对结果。
能合并编码不同的文件吗?
能。编码按文件逐个识别:先看字节顺序标记(BOM),再做严格的UTF-8检查,最后在Windows-1251和Windows-1252之间做推断,所以混合的文件也能合并,不会出现乱码。
__source_file列有什么用?
打开后,它会成为第一列,记录每一行来自哪个文件(不带扩展名)。合并之后想追查某一行可疑数据的来源,这是最简单的办法。
结果里文件按什么顺序排列?
默认按你添加的顺序。切换为按文件名排序后,会按自然顺序排列,file2排在file10前面,而不是后面。
如果其中一个文件其实是Excel文件呢?
内容以ZIP签名开头的文件,是被改名为.csv的XLSX。合并会停止,提示里写明是哪个文件,并给出Excel转CSV工具的链接。
会上传什么内容吗?
不会。读取、解析、对齐和写出都在你的浏览器中完成,合并后的文件在本地生成,不经过任何服务器。