首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReportLab表格布局

ReportLab表格布局
EN

Stack Overflow用户
提问于 2018-02-19 19:36:24
回答 1查看 820关注 0票数 2

如何编辑此代码,使其具有7列5行,且列名称显示在顶部?

代码语言:javascript
复制
# 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),
                       ])
EN

回答 1

Stack Overflow用户

发布于 2018-02-20 10:06:03

数据的形状定义了ReportLab中表格的形状。表数据可以存储在列表列表中。列表中的每个列表都是一行(元组也可以)。下面是一个示例:

代码语言:javascript
复制
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元组是(Start Column,Start Row),第二个2元组是(End Column,End Row)。您可以将此视为用鼠标选择电子表格上的一系列单元格,从第一个单元格开始到第二个单元格停止。负索引的使用方式与在Python中用于列表的方式相同。

下面的示例是一个包含7列和任意行数的表。第一行是标题。

代码语言:javascript
复制
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'),
])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48865365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档