CSV 怎么转成 Excel(xlsx):编号不丢、中文不乱码
系统只收 xlsx、Python 脚本只认 CSV、同事发来的表格双击打开是一列挤在一格的乱码—— CSV 和 Excel 互转几乎是每天都会撞上的事。转换本身一步就能完成,但有三件事决定了成品 能不能直接用:分隔符和编码有没有认对(逗号、分号、Tab,以及 UTF-8 还是带 BOM),工号学号的前导零会不会被吃掉(007 变成 7 是最常见翻车),以及反向导出时中文为什么在 Excel 里乱码。 这篇把两个方向的正确顺序和坑一次讲清。
CSV转Excel
CSV 与 xlsx 双向互转
文件全程在你的浏览器内处理,不上传服务器,免费不限次数。
先定方向:CSV → Excel 还是 Excel → CSV
打开 CSV 转 Excel 后,顶部「转换方向」有两档:CSV → Excel 和Excel → CSV。 上传 .csv 或 .xlsx 时工具也会按扩展名自动切到对应方向,方向选错不会损坏原文件, 只是会得到另一侧的结果。两边的取舍如下:
| 方向 | 典型场景 | 你会得到 |
|---|---|---|
| CSV → Excel | 导出的 CSV 要交给人看、要套颜色和公式、系统只收 xlsx | 同名 .xlsx,单工作表,数字列写成可求和的数值单元格 |
| Excel → CSV | 要把表导入数据库、Python、BI,或给只认 CSV 的老系统 | 单表直接 .csv;多工作表每表一个 CSV 并自动打成 ZIP |
先看预览再下载
分隔符与编码:乱码、串列先查这里
CSV 只是一份纯文本,「列和列怎么分开」「汉字用哪套编码存」全靠约定。 约定对不上,Excel 打开就会乱。工具在解析时做了两件事:
- 分隔符自动嗅探:在文件开头统计逗号、分号、制表符(Tab)出现的次数(忽略引号内的假分隔), 取最多的一种。导出 CSV 时分号分隔的欧洲格式、Tab 分隔的 TSV 一般都能读对
- 编码按 UTF-8 读(含 BOM):带 UTF-8 BOM 的 Windows 导出文件会先剥掉 BOM 再解析,中文不会多出一个奇怪字符; 反向导出时会重新写上 BOM, 这样 Windows 版 Excel 双击打开中文通常就不乱码
- 字段内换行与引号转义按 RFC 4180:一格里有逗号、换行、双引号时,合法 CSV 会用引号包住字段,工具能原样读回, 不会把一条记录拆成两行
预览不对时的排查顺序
- 1整行只有一列:文件多半不是逗号/分号/Tab 分隔,而是用空格或「|」硬拆的。 先在记事本里看几行,把分隔符统一成逗号再上传
- 2中文变问号或乱码:源文件若不是 UTF-8(常见是 GBK/GB2312),浏览器侧无法自动猜对。 用 Excel 或记事本「另存为」选 UTF-8 后再转;纯 ASCII 数字表不受影响
- 3提示「CSV 是空的」:文件确实没有可解析行,或内容全在 Excel 的「假 CSV」(实际是 HTML 表格伪装)。 在 Excel 里真正「另存为 CSV UTF-8」一次即可
数字、工号、日期:哪些会变成数值
CSV → Excel 时,面板固定提示:「数字列自动识别为数值」。这是为了转完能直接求和, 但也会带来两个必须知道的副作用:
- 前导零编号会按文本保留:学号 007、工号 00123、邮编、带横杠的手机号如果被当成数值会变成 7、123。 导出器对这类单元格写成文本,打开后 007 仍然是 007
- 纯数字(含小数)写成数值:金额、数量转完可以直接参与 SUM、排序、筛选;想强制当文本, 在 Excel 里把列格式改成「文本」再重新粘贴
- 日期与时间:2026-09-23 这类标准写法在 Excel 里可能被识别成日期序列值。 交接前在预览确认一眼;需要原样当字符串时,Excel 里把该列设为文本格式
身份证、银行卡一律当文本
多工作表、公式、合并单元格会发生什么
CSV 这个格式本身只有一个逻辑表, 不存工作表名、不存公式、不存合并区。互转时规则如下:
- xlsx → CSV(多表):每个工作表生成一个 CSV,文件名带「原名-表名」;点单行「下载」或「全部下载」时 多文件自动打成 ZIP,不会互相覆盖
- 公式 → 值:CSV 导出时公式按当前计算结果写成字面量。 这是格式决定的,不是工具选择——任何工具把 xlsx 转成 CSV 都会丢掉公式本身
- 合并单元格 → 首格展开:合并区的值按左上角单元格展开到区域内的每个位置(空白格得到同样的值), 这样下游导入数据库时不会出现「中间几行少列」
- CSV → xlsx 始终单表:工作表名取原文件名(去掉扩展名)。需要多表,就在 Excel 里把多个 xlsx 结果 复制进不同 Sheet,或分文件维护
要保留公式和格式,别走 CSV
操作步骤:选方向、看预览、打包下载
- 1打开 CSV 转 Excel,确认顶部「转换方向」。 点「选择表格文件」或把文件拖进虚线框,可多选,也可用「添加更多文件」分批加
- 2看每个文件下面的前 8 行预览: 列数是否和预期一致、中文是否正常、编号前导零是否还在。 方向不对就先改「转换方向」再重新添加
- 3单个文件点行内「下载」;多个文件点「全部下载(N)」—— 会打成一个 ZIP(多工作表的 xlsx 转 CSV 时每表一个 CSV,同样进 ZIP)
- 4用 Excel / WPS 打开结果抽查:求和一列数字、确认 007 没变 7、 双击 CSV 中文不乱码。没问题再交给下游系统
解析失败的行会显示错误说明;老版二进制 .xls 不在支持范围, 请先在 Excel / WPS 里「另存为」选 .xlsx 再上传。原文件始终只读, 转错了换方向重来即可。
什么时候不该硬转:先改文件还是先改名
互转解决的是「格式容器」问题。下面几类需求用转换反而绕远:
- 只想批量改文件名:比如把导出结果统一成「订单-001.csv」——用批量重命名或批量加前缀, 不需要打开再另存一遍
- CSV 打开是整页网页表格:扩展名是 .csv 但内容是 HTML。先在 Excel 里真正另存为 CSV UTF-8, 再用本工具转 xlsx,否则预览会提示解析异常
- 要给系统交「带格式的表」:对方若明确要 xlsx 且含多 Sheet、颜色、公式,直接准备 xlsx; 对方若只收 CSV,就不要指望样式能带过去
- .xls 老文件:另存为 .xlsx 再上传。工具面板和错误提示里都会写明这一点, 不会静默读出半截数据
全程本地,放心试
常见问题
CSV 转成 Excel 后数字格式会乱吗?
纯数字(含小数、科学计数)会写成数值单元格,打开后可直接求和;带前导零的编号(如 007)按文本保留,避免被 Excel 吃掉前导零。身份证、银行卡这类标识符仍建议在 Excel 里把列设为文本后再核对一遍。
Excel 转 CSV 中文乱码怎么办?
导出的 CSV 带 UTF-8 BOM,Windows 版 Excel 双击打开中文一般不乱码。若你用其他工具导入,选择 UTF-8 编码即可。若源文件本身是 GBK,需要先在 Excel 或记事本里另存为 UTF-8,再转换。
多工作表的 xlsx 怎么导出?
每个工作表生成一个 CSV,多文件时自动打成 ZIP 下载,文件名带工作表名。单工作表则直接下载 .csv。反向 CSV → Excel 始终生成单个工作表,表名取自原文件名。
支持 .xls 吗?
不支持老版二进制 .xls,请先在 Excel / WPS 里另存为 .xlsx 再上传。工具在解析失败时也会提示这一点,不会把半截数据当成成功结果。
文件会上传服务器吗?
不会。解析与生成全部在浏览器本地完成,文件不上传,免费无次数限制。含敏感信息的表格可以直接在本机转换。
CSV转Excel
CSV 与 xlsx 双向互转
文件全程在你的浏览器内处理,不上传服务器,免费不限次数。