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

Python使用xlsxwriter导出DataFrame到Excel丢失格式、EAN值不显示如何解决

问题原因
  • EAN字段属于大长度纯数字值,Excel默认对超过11位的纯数值自动使用科学计数法展示,并非数据导出时丢失,只是展示格式被Excel自动修改。
  • Pandas导出时默认将EAN字段识别为数值类型写入Excel,触发了Excel的默认数值格式化规则,和DataFrame侧的展示格式没有关联。
可行解决方法

方法1:提前将EAN字段转换为字符串类型

操作最简单,适合不需要在Excel中对EAN做数值计算的场景,导出前对所有涉及的DataFrame执行字段类型转换即可:

# 依次处理三个DataFrame的EAN字段,根据你实际的列名调整即可
diferencaValores3['EAN'] = diferencaValores3['EAN'].astype(str)
diferencaEmpresa['EAN'] = diferencaEmpresa['EAN'].astype(str)
diferencaErp['EAN'] = diferencaErp['EAN'].astype(str)

# 之后再执行你原来的导出代码即可
with pd.ExcelWriter('test_3_tabs.xlsx', engine='xlsxwriter', date_format='dd/mm/yyyy', datetime_format='dd/mm/yyyy') as writer:
    diferencaValores3.to_excel(writer, sheet_name='Diferença Peso e qtd', index=False)
    diferencaEmpresa.to_excel(writer, sheet_name='Existe a mais na Empresa', index=False) 
    diferencaErp.to_excel(writer, sheet_name='Existe a mais no ERP', index=False)

如果仍出现格式被自动修改的情况,可以在转换字符串时增加一个不可见的前导单引号,强制Excel识别为文本:
diferencaValores3['EAN'] = "'" + diferencaValores3['EAN'].astype(str)

方法2:通过XlsxWriter设置单元格格式为文本

适合需要保留EAN字段数值属性、后续要在Excel中做计算的场景,直接修改导出逻辑即可:

with pd.ExcelWriter('test_3_tabs.xlsx', engine='xlsxwriter', date_format='dd/mm/yyyy', datetime_format='dd/mm/yyyy') as writer:
    # 定义文本格式
    text_format = writer.book.add_format({'num_format': '@'})
    
    # 处理第一个工作表,假设EAN列为A列,可根据实际列位置调整列号
    diferencaValores3.to_excel(writer, sheet_name='Diferença Peso e qtd', index=False)
    writer.sheets['Diferença Peso e qtd'].set_column('A:A', 15, text_format)
    
    # 处理第二个工作表
    diferencaEmpresa.to_excel(writer, sheet_name='Existe a mais na Empresa', index=False)
    writer.sheets['Existe a mais na Empresa'].set_column('A:A', 15, text_format)
    
    # 处理第三个工作表
    diferencaErp.to_excel(writer, sheet_name='Existe a mais no ERP', index=False)
    writer.sheets['Existe a mais no ERP'].set_column('A:A', 15, text_format)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 15:09:01