如何为表的偶数行和奇数行定义样式(python reportlab)

Yve*_*ves 1 python reportlab

我必须打印一份长度可能达数百行的报告.它的特殊之处在于每个项目的内容应该印在两行上.这些线条具有特定的风格.

样品:

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 
...
Run Code Online (Sandbox Code Playgroud)

我使用表来处理每页内容.

在样式定义中,我有这样的东西:

('FONTSIZE',(0,2),(-1,-1),18)
Run Code Online (Sandbox Code Playgroud)

但我希望这种风格适用于所有偶数行和类似这样的风格

('FONTSIZE',(0,2),(-1,1),12)
Run Code Online (Sandbox Code Playgroud)

适用于所有赔率行.

最好的是这两种样式适用于整个表,除了包含表头的第一行和第二行.

G G*_*III 6

您可以通过使用基于行号生成表格样式的代码来完成此操作.Reportlab确实有一个内置功能,可以自动为行和颜色执行交替的背景颜色(查找ROWBACKGROUNDSCOLBACKGROUNDS在用户手册中),但对于任意样式,您必须通过循环遍历数据行来执行以下自定义操作.

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))
Run Code Online (Sandbox Code Playgroud)