打开在 Excel 里显示不对的 CSV。选择 Excel 需要的分隔符和编码,检查表格,然后下载修好的文件。
点击上传或把 CSV 文件拖到这里
CSV、TSV 或 TXT — 在浏览器中读取,绝不上传所有列都挤在 A 列?说明分隔符和你的 Excel 不合,请选另一个。重音字母或亚洲文字显示乱码?请保存为 UTF-8 带 BOM。数字和日期绝不会被修改。
关于“修复 CSV 以适配 Excel”
你双击一个 CSV 文件,Excel 却显示得不对。也许所有行都挤在 A 列,逗号或分号都还在里面。也许名字显示成“Müller”而不是“Müller”,或者日文、韩文变成了“???”和奇怪的符号。
数据本身没有问题,只是 Excel 读错了。原因有两个,这个工具两个都能修:
- 分隔符。中国、美国、英国和亚洲的 Excel 按逗号拆分 CSV。德国、法国、西班牙、意大利、荷兰和巴西的 Excel 按分号拆分。为一方做的文件,在另一方打开就会挤成一列。
- 编码。CSV 文件不会说明自己用的是哪种编码。Excel 只能猜,对没有 BOM 的 UTF-8 文件,它常常猜错。
在这里打开文件,选择你的 Excel 需要的分隔符和编码,看看表格,再下载修好的 CSV。一切都在浏览器里完成,文件不会被上传。
功能
- 逗号 ⇄ 分号 ⇄ 制表符——更换分隔符,引号也会正确处理
- 自动找出分隔符——逗号、分号、制表符或竖线,也认得 Excel 自己的“sep=”行
- 自动找出编码——UTF-8、UTF-16、Shift_JIS、EUC-KR、Windows-1252、GBK、Big5 等
- UTF-8 带 BOM——Excel 在任何语言下都能正确打开的唯一格式
- 可输出旧版 Excel 编码——日本用 Shift_JIS,韩国用 EUC-KR / CP949,西欧和美洲用 Windows-1252
- 预览表格——下载前先看行和列;对不上的行会被标出
- 数字保持原样——小数逗号还是逗号,日期不会被动
- 一键下载——你点击之前,新文件就已经准备好了
CSV 为什么在 Excel 里打开不对
所有内容都在 A 列。 Excel 用 Windows 的*列表分隔符*来拆分 CSV。在小数点用逗号的国家(1,5),列表分隔符是分号。所以德国的 Excel 会把 Name,Price,City 当成一个很长的单元格,而中国或美国的 Excel 会把 Name;Price;City 当成一个很长的单元格。解决办法是:给每个 Excel 它期望的分隔符。
文字乱码。 CSV 文件只是一串字节。同一个字,在不同编码里存成不同的字节。Excel 打开 CSV 时,如果文件开头没有 BOM,就会按你 Windows 的旧代码页去读(美国和西欧是 Windows-1252,日本是 Shift_JIS,韩国是 CP949,中国大陆是 GBK)。BOM 是文件开头的 3 个字节(EF BB BF),意思是“这是 UTF-8”。有了 BOM,Excel 就按 UTF-8 读取,所有语言都能正确显示。
你的 Excel 期望什么分隔符和编码
这是 Windows 上的 Excel 在你双击 CSV 时的做法。保存为 UTF-8 带 BOM 的文件在所有地区都能打开,只有分隔符不同。
| Excel 所在地区 | 分隔符 | 旧编码(无 BOM) |
|---|---|---|
| 美国、加拿大、英国、爱尔兰、澳大利亚 | 逗号 , | Windows-1252 |
| 德国、奥地利、瑞士(德语) | 分号 ; | Windows-1252 |
| 法国、比利时、西班牙、意大利、葡萄牙、荷兰 | 分号 ; | Windows-1252 |
| 巴西 | 分号 ; | Windows-1252 |
| 日本 | 逗号 , | Shift_JIS(CP932) |
| 韩国 | 逗号 , | EUC-KR / CP949 |
| 中国(大陆) | 逗号 , | GBK(CP936) |
| 台湾、香港 | 逗号 , | Big5(CP950) |
列表分隔符可以在 Windows 设置里更改,所以同一台电脑也可能不一样。如果拿不准,就选制表符——所有 Excel 都能拆分用制表符分隔的文件。
同样的文字,在不同编码里的字节
这就是编码很重要的原因。同样的文字会用不同的字节保存:
| 文字 | UTF-8 | Windows-1252 | Shift_JIS | EUC-KR |
|---|---|---|---|---|
| é | C3 A9 | E9 | — | — |
| ü | C3 BC | FC | — | — |
| 日本 | E6 97 A5 E6 9C AC | — | 93 FA 96 7B | EC ED DC E2 |
| 한글 | ED 95 9C EA B8 80 | — | — | C7 D1 B1 DB |
破折号(—)表示该编码里没有这个字。保存成这样的编码时,工具会把缺少的字写成“?”,并告诉你有多少个。UTF-8 里每个字都有位置,所以用 UTF-8 带 BOM 不会丢任何字。
当 UTF-8 的字节被当作 Windows-1252 读取时,C3 A9 会显示成“é”。这就是典型的乱码。如果你的文件里已经有“é”这样的文字,请在“更多选项”里勾选修复“é”这类乱码字符。
工具会改什么,不会改什么
工具先把 CSV 读成行和单元格,再用新的分隔符写出来。单元格只在需要时才加引号:也就是它含有分隔符、引号或换行时。单元格里的引号会写两遍(""),和 Excel 的做法一样。
示例——一个用分号的德语文件:
Name;Preis;Stadt
Müller;1,5;Köln
用逗号保存后变成:
Name,Preis,Stadt
Müller,"1,5",Köln
1,5 里的小数逗号不会被改成点。单元格被加上引号,Excel 就会把它留在一列里。工具绝不改动数字、日期或文字——只改分隔符、必要的引号、换行符和编码。如果之后美国的 Excel 把 1,5 显示成文本,请在 Excel 里改数字格式,或者保留分号并更改 Windows 的列表分隔符。
常见问题
为什么我的 CSV 在 Excel 里挤成一列?
文件里的分隔符和你的 Excel 用的不一样。中国、美国和英国的 Excel 按逗号拆分;德国、法国、西班牙、意大利、荷兰和巴西的 Excel 按分号拆分。在这里选另一个分隔符,再重新下载文件。
什么是 BOM?Excel 为什么需要它?
BOM(字节顺序标记)是文件最开头的 3 个字节。UTF-8 的 BOM 是 EF BB BF。Excel 会把带有这个标记的 CSV 当作 UTF-8 读取。没有它,Excel 就用你 Windows 的旧代码页,é、ü、日本、한글 这样的字就会乱码。
如何修复 CSV 里的日文乱码(CSV 文字化け)?
在这里打开文件。工具会判断它是 UTF-8 还是 Shift_JIS。新版 Excel 请保存为 UTF-8 带 BOM;需要的旧系统请保存为 Shift_JIS。先检查表格:如果表格里的字是对的,在 Excel 里也会是对的。
如何修复 CSV 里的韩文乱码(엑셀 CSV 한글 깨짐)?
方法一样:打开文件,检查表格,保存为 UTF-8 带 BOM。如果某个程序需要旧的韩文编码,请选 EUC-KR / CP949。
它会改我的数字或日期吗?
不会。每个单元格的文字都完全保持原样。小数逗号仍是逗号,日期仍是原来的写法。只有分隔符、引号、换行符和编码会变。
“sep=”行是什么?
有些文件以 sep=; 这样的一行开头。它告诉 Excel 用哪个分隔符。工具会读取并使用它,然后在新文件里去掉这一行,因为其他程序会把它当成一行数据显示出来。
我的文件会被上传吗?
不会。文件由你的浏览器读取和写入,不会发送到任何服务器。
它能打开 Excel 文件(.xlsx)吗?
不能,这个工具用于 CSV 和其他文本文件。要把 .xlsx 文件转成 CSV,请使用 Excel 转 CSV 转换器。
相关工具
- 文件编码转换器——更改任何文本文件的编码,不只是 CSV
- Excel 转 CSV 转换器——把 .xlsx 文件的每个工作表保存为 CSV
- CSV 转 JSON——把 CSV 表格转成 JSON,也可以转回来
- 删除重复行——清理列表或表格
- CSV 转 VCF——把联系人列表转成手机通讯录文件
使用方法
- 打开你的 CSV——拖到框里,或粘贴文字。工具会自动找出分隔符和编码
- 看看表格。如果列或文字不对,请更改文件中的分隔符,或“更多选项”里的按此编码读取
- 选择你的 Excel 用的分隔符——中国、美国、英国和亚洲的 Excel 用逗号,欧洲大部分地区和巴西用分号,任何 Excel 都能用制表符
- 选择保存方式——UTF-8 带 BOM 适合所有新版 Excel。只有需要它们的旧程序,才选 Shift_JIS、EUC-KR 或 Windows-1252
- 点击下载——编码和分隔符会写在文件名里,例如 orders-UTF-8-BOM-comma-AppAndTools.csv