我正在尝试使用xlsxwriter
引擎将样式化的数据框写到Excel。它确实起作用,但是当我尝试将add_format
应用于列时,它不会将该格式应用于我从样式化数据框编写的单元格,而仅应用于其余的空白单元格。我在做什么错?
这是我编写的用于对此进行测试的测试代码:
test_df = pd.DataFrame([11, 22.0, '33', '44 words might make this line wrap'])
test_df = test_df.style
writer = pd.ExcelWriter('format_test.xlsx', engine='xlsxwriter')
test_df.to_excel(writer,sheet_name='sheet',index=False, header=False)
worksheet = writer.sheets['sheet'] # pull worksheet object
workbook = writer.book
format1 = workbook.add_format({
'bold': True,
'text_wrap': True,
'align' : 'right',
'valign': 'center',
'fg_color': '#D7E4BC',
'border': 1})
worksheet.set_column('A:A',23,format1)
worksheet.set_default_row(50)
writer.save()
因此,如果我注释掉第二行并应用了.style
,则大多数格式(文本换行等)都可以使用。但是,一旦我再次执行.style
,格式就全部消失了。
有什么想法吗?
xlsxwriter
的作者John McNamara告诉我,它不适用于此引擎。他建议我尝试openpyxl
引擎。