Excel转CSV
把XLSX、XLS和ODS工作表导出为CSV,分隔符、编码和换行符都按接收系统真正需要的来。
把文件拖到这里
.xlsx, .xlsm, .xls, .ods · 最大300 MB
更多设置收起设置
如何转换为CSV
- 1
拖入Excel文件
XLSX、XLSM、XLS和ODS都能在这个标签页里读取。页面显示的是文件名和大小,而不是工作表列表;导出哪些工作表,由下方的“要导出的工作表”决定,选“全部工作表”会导出每一个工作表,隐藏的也包括在内。
- 2
选择工作表、分隔符和编码
可以导出第一个工作表、全部工作表,或者只导出你指定的几个。选择日期的格式,以及公式是否转成值。
- 3
转换并下载
一个工作表得到一个CSV;多个工作表得到一个ZIP,每个工作表一个文件,以工作表名称命名。
字节顺序标记不是摆设
Excel打开CSV时,靠查找字节顺序标记(BOM)来判断编码。没有BOM,它就退回到系统代码页,这就是为什么一份完全有效、满是西里尔字母或带重音姓名的UTF-8导出文件,在同事的电脑上打开却是乱码。所以这里默认用带BOM的UTF-8。如果文件要交给一个会被这三个额外字节卡住的导入程序(很多命令行工具和旧的ETL流程都是这样),点一下就能换成不带BOM的UTF-8;仍然要求Windows-1251的系统,也可以选它。
公式、日期和空行
一个写着=SUM(A1:A9)的单元格有两个值:公式本身,以及它上次计算出的数字。CSV只能带其中一个。默认得到的是数字,这是导入程序需要的;切换到公式,得到的是公式的文本,这是审核的人需要的。日期按明确的规则格式化,而不是按浏览器的区域设置,所以在德国电脑上和在美国电脑上导出ISO格式,得到的文件逐字节相同。也可以保留序列号,供少数偏好Excel自己日期计数的导入程序使用。
Windows-1251装不下的字符
单字节编码只能容纳256个字符,而一个工作簿很容易超出这个范围:西里尔文字旁边的欧元符号、欧洲商品目录里的中文商品名、从文档里粘贴来的排版破折号。没有对应字符的地方会变成问号,除非有人去数,否则这就是悄无声息的数据丢失。这个工具会数出来,告诉你替换了多少个字符,并提供一键切换回UTF-8的按钮,让这个决定由你来做,而不是出于意外。
工作簿留在你的设备上
解析文件和写出CSV完全在这个浏览器标签页里完成。不会上传任何副本,没有服务器能看到内容,事后也没有要删除的东西;关闭页面,数据就消失了。
常见问题
怎么一次导出所有工作表?
把工作表选项设为“全部”。你会得到一个ZIP,每个工作表一个CSV,各自以来源工作表命名,所以一份有三个工作表的季度报告,一次下载就是三个文件。
BOM是什么,我需要它吗?
它是文件开头的三字节标记,告诉Excel这段文字是UTF-8。文件要在Excel里打开,就保留它;文件要交给脚本或导入程序,而对方会把这三个字节当成第一列名称的一部分,就去掉它。
导出的CSV在Excel里为什么只有一列?
Excel按区域设置里的列表分隔符拆分文件。如果你的Excel期待分号,就在这里选择分号分隔符,而不是默认的逗号,文件就会按列打开。
公式会保留吗?
CSV没有公式这个概念,所以由你选择:计算出的值,这是默认选项,也是多数系统需要的;或者公式文本,比如=SUM(A1:A9),需要有人检查计算逻辑时很有用。
日期会变成什么样?
按你选择的格式写出:ISO 8601、dd.mm.yyyy、mm/dd/yyyy,或者Excel原始的序列号。格式化按明确的规则进行,而不是通过浏览器的区域设置,所以同一个文件在任何地方导出的字节都相同。
支持旧的.xls文件吗?
支持,.xlsm和OpenDocument的.ods也支持。旧的二进制格式会直接读取,不需要先另存为XLSX。
有密码保护的工作簿怎么办?
没有密码就无法读取,这个工具也不会尝试破解加密。在Excel里打开它,另存一份不带密码的副本,再转换这份副本。