如何编辑此代码,使其包含7列和5行,列名显示在顶部?
# PDF document layout
table_style = TableStyle([('ALIGN',(1,1),(-2,-2),'RIGHT'),
('TEXTCOLOR',(1,1),(-2,-2),colors.red),
('VALIGN',(0,0),(0,-1),'TOP'),
('TEXTCOLOR',(0,0),(0,-1),colors.blue),
('ALIGN',(0,-1),(-1,-1),'CENTER'),
('VALIGN',(0,-1),(-1,-1),'MIDDLE'),
('TEXTCOLOR',(0,-1),(-1,-1),colors.green),
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
])
答案 0 :(得分:0)
数据的形状定义了ReportLab中表格的形状。表数据可以存储在列表列表中。列表中的每个列表都是一行(元组也可以工作)。这是一个例子:
data = [['00', '01', '02', '03', '04'], # First row or headers
['10', '11', '12', '13', '14'], # Second row
['20', '21', '22', '23', '24'], # Third row
['30', '31', '32', '33', '34'],] # Fourth row
更多信息,请参见此处提供的文档的第84页:https://www.reportlab.com/docs/reportlab-userguide.pdf
在您的示例中,您将展示如何定义表格的样式或外观。索引[1]和[2]中的2元组定义了格式应适用的单元格范围。第一个2元组是(开始列,开始行),第二个2元组是(结束列,结束行)。您可以将此视为使用鼠标从电子表格中选择一系列单元格,从第一个单元格开始,然后在第二个单元格处停止。负索引也可以像在Python中用于列表一样使用。
以下示例是包含7列和任意行数的表。第一行是标题。
all_cells = [(0, 0), (-1, -1)]
header = [(0, 0), (-1, 0)]
column0 = [(0, 0), (0, -1)]
column1 = [(1, 0), (1, -1)]
column2 = [(2, 0), (2, -1)]
column3 = [(3, 0), (3, -1)]
column4 = [(4, 0), (4, -1)]
column5 = [(5, 0), (5, -1)]
column6 = [(6, 0), (6, -1)]
table_style = TableStyle([
('VALIGN', all_cells[0], all_cells[1], 'TOP'),
('LINEBELOW', header[0], header[1], 1, colors.black),
('ALIGN', column0[0], column0[1], 'LEFT'),
('ALIGN', column1[0], column1[1], 'LEFT'),
('ALIGN', column2[0], column2[1], 'LEFT'),
('ALIGN', column3[0], column3[1], 'RIGHT'),
('ALIGN', column4[0], column4[1], 'RIGHT'),
('ALIGN', column5[0], column5[1], 'LEFT'),
('ALIGN', column6[0], column6[1], 'RIGHT'),
])