pandas xlsxwriter,格式标题 [英] pandas xlsxwriter, format header
问题描述
我使用xlsxwriter将pandas DataFrame保存为_excel。我设法格式化所有的数据(设置列宽,字体大小等),除了改变标题的字体,我找不到方法来做到这一点。这里是我的例子: 尝试设置标题格式的倒数第二行什么也不做。 所有在一起: 通过 jmcnamara ,谢谢: 在Excel中,单元格格式覆盖行格式o verrides列格式。 到: 谢谢 krvkir 。 I'm saving pandas DataFrame to_excel using xlsxwriter. I've managed to format all of my data (set column width, font size etc) except for changing header's font and I can't find the way to do it. Here's my example: The penultimate line that tries to set format for the header does nothing. I think you need first reset default header style, then you can change it: All together: Explaining by jmcnamara, thank you: In Excel a cell format overrides a row format overrides a column format.The EDIT: In version to: thanks krvkir. 这篇关于 pandas xlsxwriter,格式标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
$ b $ $ pre pre pre $ 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
将pandas导入为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
工作表= 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
被转换为格式并应用于标题中的每个单元格。因此,默认值不能被 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
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()
pd.core.format.header_style
is converted to a format and is applied to each cell in the header. As such the default cannot be overridden by set_row()
. Setting pd.core.format.header_style
to None
means that the header cells don't have a user defined format and thus it can be overridden by set_row()
.0.18.1
you have to change pd.core.format.header_style = None
pd.formats.format.header_style = None