ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

循环遍历python reportlab中的表

2019-09-03 02:58:55  阅读:234  来源: 互联网

标签:reportlab python loops for-loop


我正在使用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)

但是,许多细胞仍未着色,其中许多细胞染色不正确,但其中一些是正确的.我假设我的循环出了问题,因为我不是一个非常有经验的程序员.

任何帮助或想法将不胜感激.

解决方法:

我对ReportLab的了解还不够清楚,但这种编码的一个常见问题是轴是交换的.例如,像这样建立索引:table1 [ii] [jj]意味着ii是y轴(行),jj是x轴(列),因此您必须向ReportJab提供x和y作为jj,ii .检查输出是否在着色单元格时交换了行和列.

另外,请注意您的双循环在两个相同的范围内循环,这只是因为您的表是方形的.如果你的表甚至变成非正方形,那么你的一个循环就会有错误的范围.

标签:reportlab,python,loops,for-loop
来源: https://codeday.me/bug/20190903/1795202.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有