表格数据总是在电子表格、数据库、接口和文档之间来回流转,而每一站都有自己的格式。CSV 是所有软件都认的最低标准,JSON 是程序之间交换数据的格式,.xlsx 是人和人之间真正在发的文件,Markdown 表格则是 README 和知识库里最终呈现的样子。这里的工具在这几种格式之间互相转换,而且文件不用上传。如果表格里有客户名单、工资或其他不该出现在陌生服务器上的内容,这一点就很关键。
CSV 比看上去复杂
CSV 有标准(RFC 4180),但现实中的文件经常不守规矩。字段里有逗号或换行,就必须用引号括起来;引号字段里的引号要写成两个;欧洲很多地区的 Excel 用分号而不是逗号分隔,因为那里的逗号是小数点;带 BOM 导出的文件开头有三个看不见的字节,会让简单的解析器把第一列的列名读错。这里的转换工具会自动识别分隔符、去掉 BOM、正确处理引号里的换行,每个工具页都列出了具体支持哪些变体。
会被悄悄改掉的值
电子表格软件总想「帮忙」:它会把 007 变成 7,把 1-2 变成日期,把长卡号变成科学计数法。转成 JSON 时,你可以选择把值当作文本保留,还是识别成数字和布尔值。即使打开了类型识别,带前导零的值也会保持为文本,编号类数据不会被改坏。Excel 里的日期存的是序列号,Excel 导出工具会根据单元格的数字格式把它还原成日历日期,连 1900 年闰年这个历史遗留问题也一并处理。
选对方向
- CSV 与 JSON 互转:双向转换,支持表头识别、类型推断、嵌套对象展平,可选为 Excel 添加 BOM。
- Excel 转 CSV:读取 .xlsx 文件的任意工作表,下载为 CSV 或 JSON。
- Markdown 表格:编辑或粘贴表格,生成对齐的 Markdown,在 GitHub 和大多数知识库里都能正常显示。
三个工具都是把整个文件读进内存处理。几十万行的大文件也能转换,页面不会卡死;预览区只显示前面若干行,方便你在下载之前核对结果。
如果转换出来的中文在 Excel 里是乱码,多半是缺了 BOM。在 CSV 导出选项里勾选「添加 BOM」,Excel 就能按 UTF-8 正确识别中文。
为什么表格数据会被 Excel 改坏
CSV 文件最后大多会被 Excel 打开,而 Excel 会改动它打开的内容:用 GBK 去读 UTF-8 文件导致中文乱码,吞掉邮编、工号前面的 0,长编号只保留 15 位有效数字,身份证号后三位因此变成 000,还会把某些编码自动变成日期。「CSV 和 Excel 的那些坑」这篇指南逐个解释这些问题,说明 Excel 怎样用序列号存储日期(45000 是 2023 年 3 月 15 日,在旧的 1904 日期系统里却是 2027 年 3 月 16 日),并给出一份在不同系统之间搬运表格数据的检查清单。
选哪种格式
CSV 是最通用的格式,几乎所有软件都能读,但它没有类型、不声明编码、也没有层级结构。JSON 能保留嵌套结构,也能区分数字和文本,程序之间交换数据时更合适。Markdown 表格则是给人看的,适合写文档和发消息。这里的工具在三者之间互相转换,每个工具页都写明了每个方向会丢失什么,比如嵌套的 JSON 转成 CSV 时,会被展开成 addr.city 这样带点号的列名。