工具 · 表格

CSV 转 Excel,不乱码、不丢开头的 0

用 Excel 直接打开 CSV,中文常常变成一堆乱码,00123 变成 123,长长的身份证号、订单号变成 1.23E+17。MSGView 自动识别编码和分隔符,把开头的 0 和长数字作为文本保留,生成真正的 .xlsx 文件——全程在浏览器中完成,文件不会上传到任何服务器。

▦

把 .csv 或 .txt 文件拖到这里

一个或多个文件均可。最大 200 MB,分块读取。

示例会打开一个内置的 Shift-JIS 编码文件,没有自己的文件也能先看看转换效果。

.csv · .tsv · .txt — UTF-8、UTF-16、Shift-JIS(CP932)、EUC-KR、GB18030、Big5、Windows-1251/1252

3 步把 CSV 转成 Excel

  1. 拖入 CSV 把文件拖到页面上,或点击选择文件。前 20 行会立即显示,已经是正常可读的文字。
  2. 核对编码和分隔符 两者都会自动识别,也可以手动更改。Excel 会弄坏的列标为蓝色:这些列按文本保存。
  3. 下载 .xlsx 点击“下载 .xlsx”。也可以另存为带 BOM 的 UTF-8 CSV,在 Excel 中双击就能正确打开。

Excel 打开 CSV 为什么会乱码?

CSV 文件本身不标明所用的编码,Excel 只能靠猜,而且经常猜错:中文版 Excel 会把不带 BOM 的 UTF-8 文件当作 GBK 打开,结果满屏乱码;反过来,GB18030 编码的文件拿到 Mac 或其他软件里打开,同样是乱码。日文的 Shift-JIS 文件、欧洲的 Windows-1252 文件也有同样的问题。MSGView 读取文件的字节,选出能干净解码的那种编码。

开头的 0、长数字和日期

邮编、客户编号和电话号码在 Excel 中会丢掉开头的 0,超过 15 位的数字(比如身份证号)会被四舍五入。开启“以文本保留开头的 0 和长数字”(默认开启)后,这些单元格会以文本形式写入 .xlsx,与原文件完全一致。日期也不会被重新解释。

防止公式注入

以 = + − 或 @ 开头的单元格,在 Excel 中打开时可能被当作公式执行。MSGView 总是把这类单元格写成文本,所以下载的文件不会在你的电脑上运行任何东西。

常见问题

我的文件会被上传吗?

不会。CSV 在浏览器内存中读取,.xlsx 在你的设备上生成。你可以在浏览器开发者工具的“网络”(Network)标签中自行验证。

文件最大可以多大?

最大 200 MB。Excel 每个工作表最多 1,048,576 行,更长的文件会接着写到下一个工作表。

可以保留 CSV 格式吗?

可以:“适用于 Excel 的 UTF-8 CSV”会保存一个带字节顺序标记(BOM)的 CSV,Excel 打开时不会乱码。

在 Mac 或手机上能用吗?

能,任何现代浏览器都可以,无需安装任何软件。

其他免费工具