Reportlab生成多个表格

2024-05-04 00:49:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Reportlab生成pdf格式的表格。但是,我已经到了需要在同一个文件中包含多个表的情况下,其中一些表跨越多个页面。我认为跨多个页面的表正在为我生成错误。在

我使用了这个答案中的格式,我的代码基于:Multiple tables (5) one one page using ReportLab

产生错误的代码:

from reportlab.lib import colors
from reportlab.lib.pagesizes import letter, inch
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle

doc = SimpleDocTemplate("test.pdf")
elements = []

data1= [['00', '01', '02', '03', '04','10', '11', '12', '13', '14'],
   ['10', '11', '12', '13', '14', '10', '11', '12', '13', '14'],
   ['20', '21', '22', '23', '24', '10', '11', '12', '13', '14'],
   ['30', '31', '32', '33', '34', '10', '11', '12', '13', '14']]

t1=Table(data1)
t1.setStyle(TableStyle([('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
                       ('BOX', (0,0), (-1,-1), 0.25, colors.black),
                       ]))

data2= [[x] for x in range(40)]

t2=Table(data2)
t2.setStyle(TableStyle([('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
                        ('BOX', (0,0), (-1,-1), 0.25, colors.black),
                        ]))

data = [[t1],[t2]]
overallTable = Table(data)
elements.append(overallTable)    
doc.build(elements)

运行时收到的错误:

^{pr2}$

我确实找到了一个类似错误https://stackoverflow.com/a/27580676/4033176的解决方案,但我从未定义过间隔器。在

有没有一种一致的方法可以使用Reportlab生成一个包含多个表的pdf文件,其中一些表的长度超过一个页面?(不是合并pdf文件)


Tags: 文件fromimportpdf错误table页面elements
1条回答
网友
1楼 · 发布于 2024-05-04 00:49:53

问题是您正在嵌套表。这意味着长表t2使一个单个单元格的长度比页面长-这就是导致错误的原因,而不是表格比页面长。在

更换

data = [[t1],[t2]]
overallTable = Table(data)
elements.append(overallTable) 

^{pr2}$

相关问题 更多 >