我认为您需要先重置默认标题样式,然后才能更改它:
pd.core.format.header_style = None
全部一起:
import pandas as pddata = pd.Dataframe({'test_data': [1,2,3,4,5]})writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')pd.core.format.header_style = Nonedata.to_excel(writer, sheet_name='test', index=False)workbook = writer.bookworksheet = 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为
None表示标头单元格没有用户定义的格式,因此可以将其覆盖
set_row()。
编辑:在版本中,
0.18.1您必须更改
pd.core.format.header_style = None
至:
pd.formats.format.header_style = None
编辑:从版本0.20再次更改
import pandas.io.formats.excelpandas.io.formats.excel.header_style = None
编辑:从版本0.24现在是必需的
import pandas.io.formats.excelpandas.io.formats.excel.ExcelFormatter.header_style = None



