CSV 合并

CSV 合并,是指把多个 CSV(逗号分隔值)文件按相同的列结构纵向拼接成一张总表的操作,常用于汇总按月、按店、按批次导出的报表。直接用 copy *.csv 拼接会留下多份表头,列顺序不一致时还会串列。本工具免费使用、无需注册:自动识别每个文件的编码(UTF-8 / GBK / UTF-16)与分隔符(逗号 / 分号 / 制表符),按表头名对齐列、缺列补空,只保留一份表头,可选加「来源」列标记每行来自哪个文件,并可去掉完全重复的行;导出默认带 UTF-8 BOM,用 Excel、WPS 打开中文不乱码。全程在浏览器本地完成,CSV 文件不上传,也不改动你的原文件。下面介绍具体操作和常见问题。

拖入多个 CSV 文件(csv/tsv/txt),点击选择
文件不上传 · 浏览器本地合并 · 支持 .csv / .tsv / .txt · 最多 50 个文件、合计 100MB

将按表头名对齐列、缺列补空,只保留第一个文件的表头;并在首列加「来源」列(文件名);导出用逗号分隔、带 UTF-8 BOM。

🔒 CSV 在你的浏览器内合并,未上传任何服务器;工具只读你的原文件,不会修改它们。

如何使用CSV 合并

1

拖入或点击选择 2 个以上 .csv / .tsv / .txt 文件(最多 50 个、合计 100MB)。每个文件会显示识别到的编码、分隔符、列数与首行内容。

2

识别不对就地纠正:在文件卡片上把编码切到 GBK/GB18030 或 UTF-16、把分隔符换成分号或制表符;用 ↑ ↓ 调整堆叠顺序,✕ 移除不要的文件。

3

设置合并参数:表头处理(默认只保留第一个文件的表头)、列对齐(默认按表头名对齐、缺列补空)、「来源」列(默认已勾选,可改列名与取值)、是否去掉完全重复的行、是否跳过全空行、输出分隔符与 BOM。参数下方有一句话告诉你工具将要做什么。

4

点「开始合并」,结果区给出行数列数、警告清单和前 50 行预览;确认无误后点「下载 CSV」。改动文件或参数后结果会标记为已过期,重新合并即可。

关于CSV 合并的常见问题

多个 CSV 文件怎么合并成一个
把要合并的 csv 文件一次性拖进本页面(或点击多选),工具会自动识别每个文件的编码和分隔符,默认按表头名把列对齐、只保留第一个文件的表头,然后纵向堆叠成一张表,点「下载 CSV」就得到合并后的单个文件。文件顺序可以用 ↑ ↓ 调整,决定数据的先后。整个过程在浏览器本地完成,不需要安装软件、不需要写命令行。
CSV 合并后表头重复怎么只保留一份
这正是直接用 copy *.csv 或复制粘贴拼接最常见的坑:第二个及以后文件的表头行会混进数据里,导入数据库或做透视表时全乱套。本工具的「表头处理」默认就是「只保留第一个文件的表头」,后续文件的首行会被当作表头跳过,不会进入数据。如果你的文件本来就没有表头,选「都没有表头,全部当数据」;如果确实想把每个文件的表头留下来,选「每个文件的表头都作为数据行保留」。
列顺序不一样的 CSV 能合并吗
能,这是本工具和直接拼接文本最大的区别。直接拼接是按列位置堆的,A 文件是「姓名,年龄」、B 文件是「年龄,姓名」时会整列串位;本工具默认按表头名对齐,B 文件的「年龄」会正确落到「年龄」列。列数不一样也没关系:以第一个文件的表头为主列序,某个文件多出来的列会追加到末尾,缺的列留空,并在结果区如实告诉你「哪些文件新增了哪些列」。列名只差首尾空格会自动忽略;连大小写也想忽略,把「列名匹配」切成宽松模式。
CSV 合并后用 Excel 打开中文乱码怎么办
本工具导出默认勾选「带 UTF-8 BOM」,Excel、WPS 双击打开就能正确显示中文,一般不会乱码。如果乱码出现在合并之前——某个文件卡片的首行预览就是一堆问号或方块,说明那个文件的编码没猜对(国产系统导出的多是 GBK/GB18030),在该文件卡片上把编码手动切过去,预览会立刻刷新。反过来,如果你要把结果导入不认 BOM 的老系统或命令行程序,把「带 UTF-8 BOM」取消勾选即可。
分隔符不同的 CSV 文件能一起合并吗
可以。每个文件的分隔符是独立识别的(在逗号、分号、制表符里引号感知地探测),所以欧洲 Excel 导出的分号 csv、数据库导出的 .tsv 和普通逗号 csv 可以混在一起合并,输出时统一成你选的一种分隔符。如果某个文件卡片显示「只识别出 1 列」,多半是分隔符判断反了,手动换一个就行。输出选制表符时,下载的文件扩展名会自动变成 .tsv。
CSV 合并会上传到服务器吗安全吗
不会上传。文件由浏览器读进内存后,在你本机的一个独立线程(Web Worker)里解码、解析、合并、生成下载文件,全程零网络请求,关闭页面即清除。工具只读你的原文件,不会修改也不会保存它们,本地只记住你的参数偏好(表头处理、分隔符、是否加来源列等),不记任何文件名和文件内容。处理客户名单、订单流水、工资表这类敏感 csv 也放心。
CSV 合并工具免费吗要注册登录吗
免费,不需要注册、不需要登录,也不用装插件,导出的 CSV 里不会掺水印行或广告行。本页是一个纯静态网页,解析、对齐、去重、生成下载文件都跑在你自己的浏览器里,我们这边没有服务器在替你算,自然也没有会员和按次付费。真正的约束来自浏览器本身:一次最多 50 个文件、合计 100MB,超过会提示你分批合并。
手机上能合并多个 CSV 文件吗
可以。本工具是纯网页,手机浏览器(含 iOS Safari 与微信内置浏览器)打开本页后,通过「文件」选择多个 csv 即可合并,结果预览表格可以横向滑动。手机内存比电脑小,建议一次合并的文件合计不超过 20~30MB;几十个大文件的批量合并还是建议在电脑浏览器里做。
CSV 合并一次最多能合多少个文件
一次最多 50 个文件、合计 100MB,这是浏览器本地处理的安全边界(超过会有明确提示,请分批合并)。合并结果的行数上限是 200 万行、列数上限 10000 列,超出会截断或提示并告诉你原因。列数异常暴涨通常不是数据问题,而是某个文件的分隔符选错了,先检查文件卡片上显示的列数。
合并 CSV 时能自动去掉重复的行吗
能,但口径要说清楚:勾选「去掉完全重复的行」后,只有所有字段都完全相同的数据行才会被去掉,且只保留第一次出现的那条,表头行不参与判重。跨文件的重复行同样会被去掉。如果你想按某一列(比如按「订单号」或「手机号」)去重、其它列不同也算重复,那属于另一类需求,本工具不做,以免悄悄丢掉你需要的数据。
CSV 合并能按 ID 列横向拼接吗
不能,本工具做的是纵向合并——把结构相同的多张表上下摞成一张更长的表,行数相加。你说的是按主键横向关联(Excel 里的 VLOOKUP、数据库里的 JOIN):用「ID」把 A 表的列和 B 表的列拼到同一行上,列数相加。两者用途完全不同,本工具页面上不提供后者,需要的话请在 Excel/WPS 里用 VLOOKUP 或 XLOOKUP 处理。

在线 CSV 合并和 copy 命令直接拼接有什么区别

CSV 只是纯文本,所以「把几个文件拼起来」看上去用 Windows 的 copy *.csv all.csv 或 macOS/Linux 的 cat *.csv > all.csv 就够了。真正动手就会发现三个坑,而这三个坑正是本工具存在的理由。

命令行直接拼接与在线 CSV 合并工具的对比
场景copy / cat 直接拼接本工具在线合并
多份表头每个文件的表头都留在数据里只保留一份,其余按表头行跳过
列顺序不同按位置硬拼,整列串位不报错按表头名对齐,列名不一致会告警
某文件多一列这一行整体后移,数据错位新列追加到末尾,其它行留空
编码混杂(UTF-8 + GBK)拼出来必有一半乱码逐文件识别,统一输出 UTF-8 BOM
分隔符不同(, 与 ;)拼进同一文件后无法正确分列逐文件识别,输出统一成一种
标记每行来自哪个文件拼完就分不出来了可选加「来源」列,便于对账溯源
去掉完全重复的行要另外写去重命令勾一个选项即可,并告诉你去掉了几行

CSV 合并按表头名对齐解决了什么问题

假设 1 月的导出是「订单号,金额,门店」,2 月系统升级后变成「订单号,门店,金额,渠道」。按位置拼接,2 月所有行的「门店」会落进「金额」列、「金额」会落进「门店」列——数字和文字混在一列里,做求和时才会发现,而那时候你已经分不清哪些行是错的了。按表头名对齐则是先把所有文件的列名取并集建立一份主列序(第一个文件的列在前,后面文件新出现的列追加到末尾),再把每个文件的每一列映射到主列序里对应的位置,缺的列留空。同名列在同一个文件里出现多次(比如两列都叫「备注」)时,工具按出现次序让它们各占一列,不会折叠成一列后互相覆盖丢数据。

多个 CSV 合并后行数对不上是怎么回事

先按默认参数算一遍就清楚了:3 个文件各有 1 行表头 + 1 万行数据,合并结果是 1 + 30000 = 30001 行,而不是 30003 行——后两个文件的表头行被当表头跳过,没有进入数据。用 copy 直接拼得到的正是 30003 行,多出来的 2 行就是混进数据里的表头。行数比预期少也有两个常见原因:一是「跳过全空行」默认开着,文件末尾多余的换行、Excel 另存时留下的空行不会变成空数据行;二是勾了「去掉完全重复的行」之后,跨文件的重复行只保留第一次出现的那条,去掉了几行会写在结果区的提示里。另外,用 Excel 打开合并结果时看到的最大行号要减去表头那一行,才是真正的数据条数。

CSV 合并怎么标记每行来自哪个文件

勾上「追加『来源』列」(默认已勾选),结果的第一列就是每行的出处,可以选完整文件名、去掉扩展名的文件名,或者你给每个文件手填的标签(比如「1 月」「北京店」);列名也能从「来源」改成「月份」「门店」这类更贴业务的叫法。这里有个容易忽略的细节:判重只看数据字段、不看来源列,所以即使加了来源列,跨文件完全重复的行照样会被去掉,留下的那条带的是它第一次出现时所在文件的来源值。合并完成后想按出处分类汇总,在 Excel 或 WPS 里按这一列做筛选、数据透视表即可。

合并大的 CSV 文件时浏览器会不会卡死

不会。解码、解析和组装全部放在独立线程(Web Worker)里执行,页面主线程只负责画进度条,所以合并期间照样能滚动、能点「取消」。结果也不是拼成一个几十 MB 的巨型字符串,而是每积累约 1MB 就切一个分片,最后直接交给浏览器组装成下载文件,避免大字符串反复复制撑爆内存。即便如此,浏览器本地仍有硬边界:一次最多 50 个文件、合计 100MB、输出 200 万行。超过这个量级,建议分批合并,或者在本机用命令行/数据库工具处理。