我认为你需要首先重置默认标题样式,然后你可以更改它:
pd.core.format.header_style = None
全部一起:
import pandas as pd
data = pd.DataFrame({'test_data': [1,2,3,4,5]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
pd.core.format.header_style = None
data.to_excel(writer, sheet_name='test', index=False)
workbook = writer.book
worksheet = writer.sheets['test']
font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10})
header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True})
worksheet.set_column('A:A', None, font_fmt)
worksheet.set_row(0, None, header_fmt)
writer.save()
解释者杰姆纳马拉, 谢谢你:
在 Excel 中,单元格格式会覆盖行格式并覆盖列格式。pd.core.format.header_style
转换为格式并应用于标题中的每个单元格。因此,默认值不能被覆盖set_row()
。环境pd.core.format.header_style
to None
意味着标题单元格没有用户定义的格式,因此它可以被覆盖set_row()
.
编辑:在版本中0.18.1
你必须改变
pd.core.format.header_style = None
to:
pd.formats.format.header_style = None
编辑:从 0.20 版本开始,这又发生了变化
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
thanks krvkir.
编辑:从版本 0.24 开始,这是必需的
import pandas.io.formats.excel
pandas.io.formats.excel.ExcelFormatter.header_style = None
thanks 克里斯·维奇奥.