我必须打印一份长度可能达数百行的报告。它的特殊之处在于每个项目的内容应该印在两行上。这些线条具有特定的风格。
示例:
line 1 : First Header line
line 2 : Second Header line
line 3 : Name , adress
line 4 : birth date , gender, hobbies
line 5 : Name , adress
line 6 : birth date , gender, hobbies
...
我使用表来处理每页内容。
在样式定义中,我有类似的东西:
('FONTSIZE',(0,2),(-1,-1),18)
但我希望这种风格适用于所有偶数行和类似这样的风格
('FONTSIZE',(0,2),(-1,1),12)
适用于所有赔率行。
最好的是,除了包含表格标题的第一行和第二行外,这两种样式适用于整个表格。
答案 0 :(得分:6)
您可以通过使用基于行号生成表格样式的代码来完成此操作。 Reportlab确实具有内置功能,可以自动为行和颜色执行交替的背景颜色(在用户手册中查找ROWBACKGROUNDS
和COLBACKGROUNDS
),但对于任意样式,您必须执行自定义操作如下所示循环遍历数据行。
table_style = [...]
for i, row in enumerate(table_rows):
if i % 2 == 0:
table_style.append(('FONTSIZE',(0,i),(-1,i),18))
else:
table_style.append(('FONTSIZE',(0,i),(-1,i),12))
my_table.setStyle(TableStyle(table_style))