首页 > 解决方案 > 在编写样式器对象时,有没有办法让 add_format 在 xlsxwriter 中工作?

问题描述

我正在尝试使用xlsxwriter引擎将样式化的数据框写入 Excel。它确实有效,但是当我尝试将 anadd_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再次执行,格式都消失了。

有任何想法吗?

标签: pythonpandasformatxlsxwriter

解决方案


的作者 John McNamara 告诉我xlsxwriter,它不适用于此引擎。他建议我试试openpyxl引擎。


推荐阅读