我使用python模塊reportlab創建一個表。在這個表格中,我想循環使用並根據任何特定單元的值具有不同的背景顏色。在python中循環遍歷一個表reportlab
要做到這一點,我想出了以下內容:
elements = []
table1 = [[34,27,35,35],
[3,76,23,157],
[13,137,15,75],
[56,26,46,26]]
t1 = Table(table1)
for ii in range(len(table1)):
for jj in range(len(table1)):
if table1[ii][jj] <=50:
ourcolor = colors.white
elif table1[ii][jj] <=100:
ourcolor = colors.skyblue
elif table1[ii][jj] <=200:
ourcolor = colors.green
else:
ourcolor = colors.white
t1.setStyle(TableStyle([('BACKGROUND', (ii,jj), (ii,jj), ourcolor),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black)
]))
elements.append(t1)
但是,許多細胞仍然沒有顏色的,其中許多人被錯誤地着色,但是他們中的一些是正確的。我假設我的循環出了問題,因爲我不是一個非常有經驗的程序員。
任何幫助或想法將不勝感激。
非常感謝,我也打算談論這個廣場問題。我在用非方形表格測試時遇到過這個問題,但是有關於解決這個問題的任何建議?謝謝 –
你只需要得到該行的長度:'對於範圍內的jj(len(table1 [0]))' –
謝謝!我認爲我現在走在正確的軌道上 –