我对ReportLab
表格样式的坐标系有些困惑。
根据他们的文档:
每个命令的第一个元素是其标识符,第二个和第三个参数确定受影响的单元格框的单元格坐标,其中负坐标从限制值向后计数,就像Python索引一样。
坐标以(列,行)的形式给出,这遵循电子表格“A1”模型,但不是更自然(对于数学家来说)的“RC”排序。左上角的单元格为(0, 0),右下角的单元格为(-1, -1)
如果右下角始终为(-1, -1),那么中间的行和列是否为分数?这似乎没有意义。在下面的示例中,如果绿色从位置(1,1)开始,则坐标系从0到-1,而第二个坐标系(-2,-2)如何偏移原点位置?
from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
doc = SimpleDocTemplate("simple_table.pdf", pagesize=letter)
# container for the 'Flowable' objects
elements = []
data= [['00', '01', '02', '03', '04'],
['10', '11', '12', '13', '14'],
['20', '21', '22', '23', '24'],
['30', '31', '32', '33', '34']]
t=Table(data)
t.setStyle(TableStyle([('BACKGROUND',(1,1),(-2,-2),colors.green),
('TEXTCOLOR',(0,0),(1,-1),colors.red)]))
elements.append(t)
# write the document to disk
doc.build(elements)
TABLE[-1,-1]
与TABLE[3,4]
完全相同。在Python中,您可以使用-1访问列表的末尾,因此TABLE[-1]
是最后一行,TABLE[-1][-1]
只是最后一行的最后一列(也许我搞混了行/列的顺序)。 - Joran Beasley