使用XlsxWriter对行进行分组

时间:2018-02-21 13:53:28

标签: python xlsxwriter

我正在用Python和XlsxWriter编写一个Excel文件,其中我想将元素分为两个级别。几个“板”包含按“列表”分组的元素。我想把同一个'list'的所有元素和'board'的所有元素组合在一起。

经过多次尝试后,我没有成功获得以下结果:

Excel example of expected result

有人可以帮我理解下面的功能如何运作:

worksheet.set_row(1, None, None, {'level': 1})

我已经按照文档中给出的example进行了操作,但我不知道每行上要设置的级别,以使2个分组级别按预期工作。

1 个答案:

答案 0 :(得分:1)

您可以像下面的屏幕截图第一部分一样进行操作。

import xlsxwriter

workbook = xlsxwriter.Workbook('outline.xlsx')
worksheet = workbook.add_worksheet()

worksheet.set_row(1, None, None, {'level': 2})
worksheet.set_row(2, None, None, {'level': 1})
worksheet.set_row(3, None, None, {'level': 2})
worksheet.set_row(4, None, None, {'level': 2})
worksheet.set_row(5, None, None, {'level': 2})
worksheet.set_row(6, None, None, {'level': 1})

worksheet.set_row(8, None, None, {'level': 2})
worksheet.set_row(9, None, None, {'level': 1})

worksheet.set_row(12, None, None, {'level': 2})
worksheet.set_row(13, None, None, {'level': 2})
worksheet.set_row(14, None, None, {'level': 2})
worksheet.set_row(15, None, None, {'level': 2})
worksheet.set_row(16, None, None, {'level': 1})
worksheet.set_row(17, None, None, {'level': 1})
worksheet.set_row(18, None, None, {'level': 2})
worksheet.set_row(19, None, None, {'level': 2})
worksheet.set_row(20, None, None, {'level': 2})
worksheet.set_row(21, None, None, {'level': 1})

workbook.close()

输出:

enter image description here

诀窍是填写需要连续分组的1级行。请注意,在示例中,存在来自行1-6,8-9和12-21(零索引)的值。

更新:添加了第12-23行分组以响应下面的后续问题。也更新了图片。