CSV转Excel
把导出的CSV变成真正的XLSX工作簿,打开就按列排好。不用导入向导,重音字母不会乱码,开头的0也不会丢。
把文件拖到这里
.csv, .tsv, .txt · 最大300 MB
更多设置收起设置
如何转换为Excel
- 1
拖入CSV文件
添加一个文件,或一次最多二十个。所有内容都在这个浏览器标签页里读取,再大的导出文件也不会离开你的设备。
- 2
检查识别出的分隔符和编码
分隔符和字符集根据文件本身判断。预览看起来不对时,手动改其中任意一项,结果会随之更新。
- 3
转换并下载XLSX
点击按钮,保存工作簿。一个CSV得到一个以它命名的XLSX;多个CSV则各自得到一个工作簿,每个工作簿只有一个以对应文件命名的工作表,全部打包在一个ZIP里一起下载。
为什么Excel把所有内容挤在一列
Excel拆分CSV时用的是操作系统里设置的列表分隔符,而不是看文件本身。区域设置为欧洲的电脑上,这个分隔符是分号,所以逗号分隔的文件打开后只有一列文本;美国区域设置的电脑上,分号分隔的文件会遇到相反的情况。这个转换器从不根据你的系统设置猜测。它用每一种候选分隔符(逗号、分号、制表符、竖线和冒号)解析文件,选出在每一行抽样里字段数都一致的那一种。如果两个候选不分上下,它会直接告诉你,而不是随便挑一个。拆错了要恢复,代价远比回答一个问题大。
开头的0、长数字和日期
转换器最容易造成损失的地方,是对数据类型自作聪明。产品编码00123一旦变成数字123,就没法从工作簿里恢复;十六位的卡号或条形码会悄悄丢掉最后几位,因为双精度浮点数最多只能保存十五位有效数字。这两种情况在这里都特意保留为文本。真正的数字仍然转成数字,方便求和;ISO日期和dd.mm.yyyy格式的日期转成真正的日期;true/false转成布尔值。如果你希望什么都不解析,把类型识别切换为“文本”,每个单元格都会以字符串形式保存。
Windows-1251、Windows-1252和字节顺序标记
财务系统和旧数据库导出的文件,常常不是UTF-8编码。转换时先检查文件有没有字节顺序标记(BOM),再严格按UTF-8解码;如果失败,就根据高位字节的分布在Windows-1251和Windows-1252之间做出判断。UTF-8的BOM会被去掉,不会带进结果。这一点比听起来重要:第一个表头单元格前面粘着一个看不见的U+FEFF,这一列的名称就再也对不上下一个工具期待的任何名字。
导出文件不会离开这个标签页
读取文件、识别编码、解析各行和写入XLSX,全部在你的浏览器里本地完成。没有上传,没有排队,服务器上也没有临时副本。文件是客户名单或工资导出表时,这一点尤其重要。
常见问题
Excel打开CSV为什么是乱码?
因为文件不是UTF-8编码,Excel却按UTF-8打开了,或者正好相反。俄罗斯财务软件导出的文件通常是Windows-1251,旧的西方系统导出的文件通常是Windows-1252。这里两种都能自动识别,生成的XLSX用Unicode保存文本,所以问题不会再出现。
为什么所有数据都在一列里?
Excel按你系统设置里的分隔符拆分了文件,而不是按文件里实际用的分隔符。这个转换器用每一种候选分隔符解析开头几行,找出真正的分隔符,所以分号分隔的文件即使在美国区域设置的电脑上也能按列打开。
逗号分隔和分号分隔的文件有什么区别?
结构上没有区别,两种都是CSV。用逗号作小数点的国家,导出时改用分号分隔,这样1,50仍然是一个数字。如果你的文件用分号分隔,把小数点选项设为逗号,这些值就会变成真正的数字。
开头的0会保留吗?
会。像00123这样的值保留为文本,不会变成123;超过十五位的数字也一样。电话号码、IBAN和条形码一旦变成浮点数,就会丢失数据。
一个XLSX文件最多能有多少行?
1,048,576行、16,384列,这是格式本身的硬性上限,不是这个工具的限制。更大的CSV会被拒绝,并给出清楚的提示和“CSV拆分”工具的链接,用它把文件切成Excel能打开的几份。
能把多个CSV文件合并到一个工作簿里吗?
在这个页面上不能合并到一个工作簿里。一次最多可以添加二十个文件,但每个文件都会变成单独的XLSX,里面只有一个以文件名命名的工作表,它们打包在一个ZIP里一起返回。如果这些文件的列相同,可以先用CSV合并把它们上下拼成一个CSV,再转换成一个工作表。
文件会上传到什么地方吗?
不会。解析和写入工作簿完全在你的浏览器里完成,用的是JavaScript和SheetJS库。任何时候都不会向服务器发送任何内容,关闭标签页后也不会留下副本。