python - pandas xlsxwriter,格式表标题 - 不是工作表标题

标签 python excel pandas format xlsxwriter

我正在使用 xlsxwriter 将 pandas DataFrame 保存到_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/57563472/

相关文章:

r - 如何将 R 数据框保存到 Excel 文件,其中某些单元格以粗体显示?

excel - 重复值 n 次,其中 n 也可以是 0.5

python - pandas 数据框中的透视和计数条件

python - Pandas - 数据框名称列表?

python - 引用 ndarray 中的 ndarray 行

python - 如何从 pandas groupby().sum() 的输出创建新列?

python - 在 OpenCV 的 findContours 方法中重复

sql - ADODB/Access : Update Multiple Fields from Record in Same Table

python - Numpy,除以零 : two different results for the same operation

python - 在分类列上过滤 Dask 数据框?