ReportLab行包含不同的列

时间:2015-08-24 14:35:54

标签: python pdf reportlab

我在pdf表中编写我的数据,我的第一行有4列,第二行有2列,第3行有4列,依此类推

            table.setStyle(TableStyle([
                   ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
                   ('BOX', (0,0), (-1,-1), 0.25, colors.grey),
                   ]))

这是我用来设置表格样式的代码,但我每行都有4列。我想根据列表的长度生成列,如我的列表li [[[1,2 ,3,4] [1,2] [1,2,3,4] [1,2,3]] 在第一行我需要4列,在第二行2列,所以我可以使用tablestyle实现它。

1 个答案:

答案 0 :(得分:0)

只显示您需要的边框。在documentation

中查找“TableStyle Line Commands”

修改

假设您的数据列表如下:

data = [[0, 1, 2, 3],
        [0, 1],
        [0, 1, 2, 3],
        [0, 1, 2]]

那么也许这样的事情会起作用:

>>> lineweight = 0.25
>>> gridlines = [('GRID', (i, 0), (i, len(j)), lineweight, colors.grey) for i, j in enumerate(data)]
>>> gridlines
[('GRID', (0, 0), (0, 4), 0.25, colors.grey),
 ('GRID', (1, 0), (1, 2), 0.25, colors.grey),
 ('GRID', (2, 0), (2, 4), 0.25, colors.grey),
 ('GRID', (3, 0), (3, 3), 0.25, colors.grey)]

希望有所帮助。

edit2:添加lineweight