【问题标题】:ReportLab Table LayoutReportLab 表格布局
【发布时间】:2018-02-20 10:06:03
【问题描述】:

如何编辑此代码,使其有 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),
                       ])

【问题讨论】:

    标签: python reportlab


    【解决方案1】:

    数据的形状决定了 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-Tuples 定义了格式应适用的单元格范围。第一个 2-Tuple 是 (Start Column, Start Row),第二个 2-Tuple 是 (End Column, End Row)。你可以把它想象成用鼠标在电子表格上选择一系列单元格,从第一个单元格开始,到第二个单元格停止。负索引也可以像在 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'),
    ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-28
      • 2013-04-24
      • 1970-01-01
      • 2012-10-06
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      相关资源
      最近更新 更多