You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现XLSX转CSV:如何保留4列格式不合并

解决XLSX转CSV后Excel显示为1列的问题

看起来你误会了CSV的本质以及Excel打开CSV的方式!你生成的CSV文件其实已经是标准的4列结构了——用文本编辑器(比如Notepad++)打开你现在得到的CSV,就能看到每一行都是用逗号分隔的4个字段,这完全符合CSV的规范。

问题出在Excel打开CSV时的自动识别逻辑:如果你的系统区域设置里的「列表分隔符」不是逗号(比如部分欧洲地区默认用分号),Excel就会把整行内容当成单一列显示。

下面给你几个实用的解决办法:

方法1:通过Excel数据导入功能打开CSV(最推荐)

不要直接双击CSV文件,而是用Excel的导入流程来指定分隔规则:

  • 打开空白Excel文件,点击顶部「数据」选项卡 → 选择「自文本/CSV」
  • 选中你的CSV文件,在导入向导中:
    1. 确认文件编码匹配你生成时用的iso8859_7或utf-8-sig
    2. 分隔符选择「逗号」
    3. 完成导入后,就能看到正常拆分的4列了

方法2:优化pandas代码的编码与分隔符设置

你的pandas代码可以调整编码为Excel更易识别的格式,同时明确指定分隔符,让生成的CSV能被Excel直接正确解析:

import pandas as pd  # 注意统一使用pd别名
def pd_to_csv(file):
    data_xls = pd.read_excel(file, index_col=None, encoding='iso8859_7')
    # 使用utf-8-sig编码(Excel原生支持),明确指定逗号分隔符
    output_csv = file.replace('.xlsx', '.csv')
    data_xls.to_csv(output_csv, index=False, encoding='utf-8-sig', sep=',')

用这个代码生成的CSV,双击打开Excel时大概率会自动识别逗号分隔符和正确编码,直接显示4列。

方法3:修改系统区域的列表分隔符(全局设置)

如果你的系统默认列表分隔符不是逗号,可以修改为逗号来适配CSV格式:

  • Windows:控制面板 → 区域和语言 → 其他设置 → 列表分隔符,改为「,」
  • Mac:系统设置 → 通用 → 语言与地区 → 高级 → 分隔符,将列表分隔符设为「,」
    修改后双击CSV就能正常显示4列,但这个设置会影响系统所有依赖列表分隔符的程序,需要谨慎操作。

另外,你用csv模块编写的代码也是完全正确的,生成的CSV结构没有问题,同样可以通过上述方法解决Excel的显示问题。

内容的提问来源于stack exchange,提问作者Drakumel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:56:09