python - pandas xlsxwriter,格式表头 - 不是表头

标签 python excel pandas format xlsxwriter

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

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

尝试设置标题格式的倒数第二行没有任何作用。

最佳答案

我认为你需要先重置默认标题样式,然后你可以改变它:

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

jmcnamara 解释,谢谢:

在 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.excel
pandas.io.formats.excel.header_style = None

谢谢 krvkir .

编辑:从 0.24 版开始,现在需要此功能

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

谢谢 Chris Vecchio .

关于python - pandas xlsxwriter,格式表头 - 不是表头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36694313/

相关文章:

Python3.2 无法识别解释器中的 UP/DOWN/LEFT/RIGHT 键?

excel - 删除重复项但有异常

Excel 宏 - 任何人都可以解释这一点吗?

python - Pandas Concat 遇到内存错误

python - 带有单个子图的 Matplotlib

python - 为什么在聚类之前跨行而非列进行数据标准化(预处理)

python - 在python中聚合 Pandas 数据时如何计算每组尾部的总和|均值|中位数

VBA-隐藏的工作簿中现有工作表的超链接

python - pandas 数据框中的抖动几乎重复行

python - 如何在Python中不使用replace()函数的情况下替换字符串中句子中所有实例中的字母(例如ABC)?