修复 CSV 以适配 Excel

数据全挤在 A 列,或者字母变成“é”和“???”?修好分隔符和编码,Excel 就能正确打开 CSV。

100% 隐私安全 — 完全在您的浏览器中运行。您的数据在本地设备上处理,绝不会发送到互联网。

打开在 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-8Windows-1252Shift_JISEUC-KR
éC3 A9E9——
üC3 BCFC——
日本E6 97 A5 E6 9C AC—93 FA 96 7BEC 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 用的分隔符——中国、美国、英国和亚洲的 Excel 用逗号,欧洲大部分地区和巴西用分号,任何 Excel 都能用制表符
  • 选择保存方式——UTF-8 带 BOM 适合所有新版 Excel。只有需要它们的旧程序,才选 Shift_JIS、EUC-KR 或 Windows-1252
  • 点击下载——编码和分隔符会写在文件名里,例如 orders-UTF-8-BOM-comma-AppAndTools.csv

我们会定期添加新工具——在 YouTube 上订阅,即可在每个新工具上线时收到通知。

更多工具

查看全部

推荐应用

查看全部