如何通过pd.to_excel()的engine_kwargs设置Excel文本数字格式?
利用to_excel()的engine_kwargs设置Excel文本格式
一、优先方案:openpyxl引擎
直接通过engine_kwargs传递默认样式配置,指定数字格式为@(Excel文本格式代码),无需额外导入依赖:
import pandas as pd df = pd.DataFrame([["23-3", "21-1"], ["8-5", "6-7"]], columns=["A", "B"]) # 使用openpyxl引擎,设置默认单元格为文本格式 df.to_excel("test_openpyxl.xlsx", engine="openpyxl", engine_kwargs={'default_style': {'number_format': '@'}})
二、备选方案:xlsxwriter引擎
需先创建xlsxwriter格式对象,再通过engine_kwargs传入作为默认格式:
import pandas as pd import xlsxwriter df = pd.DataFrame([["23-3", "21-1"], ["8-5", "6-7"]], columns=["A", "B"]) # 创建xlsxwriter文本格式对象 text_format = xlsxwriter.Workbook().add_format({'num_format': '@'}) # 使用xlsxwriter引擎,设置默认文本格式 df.to_excel("test_xlsxwriter.xlsx", engine="xlsxwriter", engine_kwargs={'default_format': text_format})
关键说明
- 两种方案均无需使用
pd.ExcelWriter,直接通过pd.DataFrame.to_excel()的engine_kwargs参数实现格式配置 - 设置
@格式后,Excel中编辑单元格回车时,不会自动将类似23-3的内容转为日期格式
内容的提问来源于stack exchange,提问作者mouwsy
相关产品推荐
相关产品推荐

