XlsxWriter 对齐设置不起作用

XlsxWriter alignment settings are not working

我正在使用 xlsxwriter 从我的 Python 数据框创建 Excel 工作表。除了对齐设置外,一切正常,它们只是没有出现在我的输出工作表中。我想换行 header 文本并将其垂直和水平设置到中心,我还想将列 A:A 左对齐。到目前为止,这是我的代码:

percent = workbook.add_format({'num_format': '0.0%', 'bold': False})
header = workbook.add_format({'text_wrap': True, 'align': 'center','align': 'vcenter','border': 1})
left = workbook.add_format({'align': 'left'})
vjustify = workbook.add_format({'align': 'vjustify'})
wrap = workbook.add_format({'text_wrap': True})
border = workbook.add_format({'border': 1})

worksheet.set_row(0, 30, header)

worksheet.set_column('A:T', None, border)
worksheet.set_column('A:A', 12, left)
worksheet.set_column('H:L', None, None, {'level': 1})
worksheet.set_column('M:Q', 6)
worksheet.set_column('R:R', 12, percent)
worksheet.set_column('T:T', 60)

请帮我看看我错过了什么?

XlsxWriter(和 Excel)中的列范围必须是唯一的并且不能重叠。来自 XlsxWriter docs:

Ranges cannot overlap. Each unique contiguous range should be specified separately:

# This won't work.
worksheet.set_column('A:D', 50)
worksheet.set_column('C:C', 10)

# It needs to be split into non-overlapping regions.
worksheet.set_column('A:B', 50)
worksheet.set_column('C:C', 10)
worksheet.set_column('D:E', 50)

在您的示例中,范围 'A:T' 覆盖了其他几个范围。因此,您需要将范围拆分为唯一的非重叠范围。