CSV vs XLSX:存成 CSV 的时候你失去了什么

Docs Nov 1, 2026 3 min read

把电子表格存成 CSV 感觉上没什么伤害。文件小、到哪都打得开、数字看起来也都一样。然后一周后有人打开它,电话号码前面的零不见了、日期顺序颠倒了、每一条公式都变成了冻结的数值。

那些都不是 bug。那就是 CSV 本身。

两种格式各自是什么

CSV 是 comma-separated values(逗号分隔值)的缩写,而这个名字就是它的完整规格。它是一个纯文本文件,一行是一行记录,逗号把列分开。就这样。它没有为别的东西留位置,因为格式里根本没有别的东西可以留。

XLSX 是一包压缩过的 XML 文档,描述一个工作簿:多个工作表、单元格类型、公式、格式、图表、命名区域、验证规则。它从 2007 年起就是 Excel 的默认格式,而且是公开有文档的标准,所以别的电子表格程序也读写得了。

CSV 丢掉了什么

除了一张工作表上的那些值,其余全部:

猜测,就是数据被弄坏的地方

最后那一点造成了大家真正会注意到的那些失败。

开头的零不见了。一个 00123 的邮编或料号看起来像数字,所以被当成数字读,而数字没有开头的零。它变成 123。

日期被重新解读。03/04/2026 在世界大部分地方是四月三日,在美国是三月四日。CSV 没有说是哪一个;读它的程序套用自己的区域设置。

长数字变成科学计数法。一个十六位的识别码可能被显示成 1.23457E+15,而且更糟的是被四舍五入。

重音字符坏掉。CSV 不记录自己的编码。用 UTF-8 写出去、被用别的编码读进来,café 就变成 café。这是 CSV 最常见的单一抱怨。

分隔符不一定是逗号。在用逗号当小数点的地区,电子表格程序写出来的是分号。一个在德国产出的文件,用“逗号”的预期去开,整份会全部落在 A 列。

CSV 真正厉害的地方

只讲到这里并不公平,因为 CSV 活下来是有好理由的。

通用。每一个数据库、编程语言、统计软件包、分析工具都读 CSV。它是“两个系统之间什么都不共享时”搬运数据的共通语言。

体积与速度。一百万行的 CSV 只有对应 XLSX 的一小部分大,而且可以一行一行流式处理,不必把整份载入内存。

透明。你可以用文本编辑器打开它,看到里面确切有什么。导入失败的时候,这一点价值非常高。

耐久。一个纯文本文件四十年后不费什么力气就还读得出来。那是一个真实的典藏论据。

怎么选

用 XLSX,当这个文件是一份“人要在里面工作”的文档——任何有公式、有多张工作表、格式本身带有意义,或者同事会编辑后发回来的。

用 CSV,当这个文件是“移动中的数据”——喂给导入程序、从某个系统导出、交给一支脚本或一位统计人员。一张值的表,送去一个只要值的地方。

该问的问题是:接收它的是人还是程序?人需要那些结构;程序通常希望那些结构被剥掉。

怎么让 CSV 乖一点

速查

快速解决你的文件问题: PDF 转换 立即免费使用 — PDF 转换 →