使用reportlab让两个表格水平展示
时间: 2024-05-08 18:21:59 浏览: 148
reportlab-userguide.pdf
可以使用`PageBreak()`函数将两个表格分别放在不同的页面上,然后使用`Spacer()`函数添加一定的空白间隔,使得两个表格水平展示。
以下是一个示例代码:
```python
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, PageBreak, Spacer
doc = SimpleDocTemplate("two_tables.pdf", pagesize=letter)
# 定义第一个表格
data1 = [['00', '01', '02', '03', '04'],
['10', '11', '12', '13', '14'],
['20', '21', '22', '23', '24'],
['30', '31', '32', '33', '34']]
table1 = Table(data1)
table1.setStyle(TableStyle([('BACKGROUND', (1, 1), (-2, -2), (0.8, 0.8, 0.8)),
('TEXTCOLOR', (0, 0), (-1, 0), (0, 0, 1)),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
('FONTSIZE', (0, 0), (-1, 0), 14),
('BOTTOMPADDING', (0, 0), (-1, 0), 12),
('BACKGROUND', (0, 0), (-1, 0), (0.8, 0.8, 0.8))]))
# 定义第二个表格
data2 = [['a', 'b', 'c', 'd', 'e'],
['f', 'g', 'h', 'i', 'j'],
['k', 'l', 'm', 'n', 'o'],
['p', 'q', 'r', 's', 't']]
table2 = Table(data2)
table2.setStyle(TableStyle([('BACKGROUND', (1, 1), (-2, -2), (0.8, 0.8, 0.8)),
('TEXTCOLOR', (0, 0), (-1, 0), (0, 0, 1)),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
('FONTSIZE', (0, 0), (-1, 0), 14),
('BOTTOMPADDING', (0, 0), (-1, 0), 12),
('BACKGROUND', (0, 0), (-1, 0), (0.8, 0.8, 0.8))]))
# 将两个表格分别放在不同的页面上,并添加空白间隔
story = [table1, PageBreak(), Spacer(1, 20), table2]
doc.build(story)
```
在上述代码中,我们使用`PageBreak()`函数将两个表格分别放在不同的页面上,然后使用`Spacer()`函数添加了一个高度为20的空白间隔,使得两个表格之间有一定的间隔。最终生成的PDF文件中,两个表格水平展示。
阅读全文