首页 文章

pandas xlsxwriter,格式 Headers

提问于
浏览
19

我正在使用xlsxwriter保存pandas DataFrame to_excel . 我已经设法格式化我的所有数据(设置列宽,字体大小等),除了更改 Headers 的字体,我找不到这样做的方法 . 这是我的例子:

import pandas as pd
data = pd.DataFrame({'test_data': [1,2,3,4,5]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')

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()

试图为 Headers 设置格式的倒数第二行什么都不做 .

3 回答

  • 25

    我认为您需要先重置默认 Headers 样式,然后您可以更改它:

    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()
    

    由_1552173解释,谢谢:

    在Excel中,单元格格式覆盖行格式会覆盖列格式 . pd.core.format.header_style 将转换为格式并应用于 Headers 中的每个单元格 . 因此, set_row() 无法覆盖默认值 . 将 pd.core.format.header_style 设置为 None 表示 Headers 单元格没有用户定义的格式,因此可以通过 set_row() 覆盖它 .

    编辑:在版本 0.18.1 你必须改变

    pd.core.format.header_style = None
    

    至:

    pd.formats.format.header_style = None
    

    谢谢krvkir .

  • 24

    对于发现此帖并使用Pandas 0.20.1的任何人的更新 .

    现在似乎是必需的代码

    import pandas.io.formats.excel
    pandas.io.formats.excel.header_style = None
    

    显然 excel 子模块不会自动导入,因此只需单独尝试 pandas.io.formats.excel.header_style = None 就会引发 AttributeError .

  • 4

    在pandas 0.20中,接受的答案的解决方案再次改变 .

    可以在以下位置找到应设置为“无”的格式:

    pandas.io.formats.excel.header_style
    

相关问题