python reportlab 生成table学习笔记

利用python report生成table表格,需要定义表格的数据,表格的样式,最后利用doc.build方法生成文件。

在reportlab中文手册中描述table方法:

Table 初始化
Table(
data,
colWidths=None,
rowHeights=None,
style=None,
splitByRow=1,
repeatRows=0,
repeatCols=0,
rowSplitRange=None,
spaceBefore=None,
spaceAfter=None,
)
参数data是单元格值的序列,每个单元格值都应该使用str函数转换为字符串值,或者应该是一个
Flowable 实例(如Paragraph)或此类实例的列表(或元组)。如果一个单元格值是一个 Flowable 或
Flowable 的列表,这些单元格必须有一个确定的宽度,或者包含的列必须有一个固定的宽度。单元
格值的第一行在 data[0] 中,也就是说,单元格值是按行顺序排列的。i, jth.单元格值在data[i][j]中。
单元格值中的新行字符’\n’被视为行分割字符,并在draw时用于将单元格格式化为行。
其他参数是相当明显的,colWidths 参数是一个数字序列,也可能是None,代表列的宽度。在
colWidths 中的元素数决定了表中的列数。值为None意味着相应的列宽应该自动计算。
参数 rowHeights 是一个数字序列,也可能是None,代表行的高度。rowHeights
中的元素数决定了表中的行数。值为None意味着相应的行高应该自动计算。
参数 style 可以是表的初始样式。
splitByRow 参数只适用于太高和太宽而无法适应当前上下文的表格。
在这种情况下,你必须决定是向下和横向 “平铺”,还是横向然后向下。 这个参数是一个布尔值,表
示当当前绘图区域可用空间太小,而调用者希望Table进行分割时,Table应该先按行进行分割,再
按列进行分割。目前还没有实现按列分割Table,所以将splitByRow设置为False将导致NotImplem entedError。
参数repeatRows指定了当Table被要求拆分时应该重复的前导行的数量或元组。如果它是一个元组
,它应该指定哪些前导行应该被重复;这允许表的第一次出现比后来的分割部分有更多的前导行。
目前,repeatCols参数被忽略,因为Table不能按列进行拆分。
当在platypus故事中重新编排时,spaceBefore 和 spaceAfter 参数
可以用来在表格之前或之后放置额外的空间。
rowSplitRange参数可以用来控制表的分割,将表分割成它的行的子集;这可以防止分割太接近表的
开始或结束。
Table.setStyle(tblStyle)
这个方法将类TableStyle(下面讨论)的一个特定实例应用到Table实例中。这是让tables以一种很好的
格式化方式出现的唯一方法。
对setStyle方法的连续使用以加法的方式应用这些样式。也就是说,后面的应用会覆盖前面重叠的应
用。

TableStyle(commandSequence)
创建方法以参数命令序列为例初始化TableStyle。

这个类是通过传递给它一个commands序列来创建的,每个 command 是一个元组,由它的第一个元素识别,它是一个字符串;command元组的其余元素代表命令的起始和停止单元格坐标,可能还有厚度和颜色等。
LIST_STYLE = TableStyle(
[(‘LINEABOVE’,(0,0), (-1,0), 2, colors.green),
(‘LINEABOVE’, (0,1), (-1,-1), 0.25, colors.black),
(‘LINEBELOW’, (0,-1), (-1,-1), 2, colors.green),
(‘ALIGN’, (1,1), (-1,-1), ‘RIGHT’)]
)

这里(0,0), (-1,0), 是定义范围,前边是上坐标,后边是下坐标,每组坐标为(列,行)

生成文件如下:

首行合并,对齐,没有边框:(从0列1行开始加边框和内部的线,外边框改为0.5

结果为

加汉字

最后结果

Original: https://www.cnblogs.com/jilingxf/p/15857940.html
Author: jilingxf
Title: python reportlab 生成table学习笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609910/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [随记]-linux侦听端口的4种方法

    侦听 192.168.0.1 服务器上的 10086 端口是否打开 1. telnet telnet是windows 内置的功能,当然 linux 也有。用法: tenlet 19…

    Linux 2023年6月6日
    0110
  • 设计模式——面向对象设计原则

    面向对象设计原则 都是为了高内聚低耦合原则。编程时基本都要遵守 分类原则:一种人只干一种事。 举例:(比较简单就不代码了) 人可以干的事情有很多:敲代码、唱歌、跳舞、打篮球&#82…

    Linux 2023年6月7日
    0161
  • bochs(2.6.11)配置安装

    下载:https://bochs.sourceforge.io/ 建议下载2.6.11,下文一开始安装的2.7,但运行时有无法解决的错误。但是大致安装过程一致。 linux 提前安…

    Linux 2023年5月27日
    0141
  • R基础

    1、官网下载R和Rstudio 2&#x…

    Linux 2023年6月8日
    095
  • sql server 增删改(查太多了)

    delete(删除) 使用 delete语句删除表中数据。 delete from 表名 [where where_definition] 如果不使用where子句,将删除表中所有…

    Linux 2023年6月7日
    087
  • RPA供应链管制单修改机器人

    bash;gutter:true;背景:供应链环节中,研发物料时而因为市场缺货等原因无法采购,资材部需登入系统修改物料管制单。操作流程:登录PDM系统中读取数据、登录ERP系统中更…

    Linux 2023年6月7日
    0115
  • 网络通信知识地图

    知识地图是一种知识导航系统,并显示不同的知识存储之间重要的动态联系。本篇主要就是从更高的视角将之前的文章的结构思路展现出来。文章结构的思路实际上也是达到架构师程度要掌握的网络通信知…

    Linux 2023年6月14日
    0117
  • Redis中删除过期Key的三种策略

    转载自:http://blog.csdn.net/a_bang/article/details/52986935?locationNum=9&fps=1 项目中有个接口要频…

    Linux 2023年5月28日
    0114
  • 趣谈IO多路复用的本质

    在《轻松搞懂5种IO模型》中,我发起了一个投票。 答案是【同步IO多路复用】。目前,60%的朋友答对了。原因这里解释一下。 同步和异步的概念区别 同步:线程自己获取结果。(一条线索…

    Linux 2023年5月27日
    076
  • dotnet诊断工具记录

    CPU爆高(cpu陡增,比如正常运行一般是x%的cpu,突然到了20% 30%甚至更高) 调试高 CPU 使用率 dotnet tool install –global dotn…

    Linux 2023年6月7日
    0104
  • 投票活动进行中!探讨问题:从互联网大量收集学习资料再包装成产品售卖盈利是否属于侵权违法?

    写在开篇 今天不聊某项技能的知识点,我们聊点别的。那么,到底聊啥好呢?笔者想想… 有了,这两天笔者从一个微信公众号中发现一个非常恶劣的营销行为。事情大概背景是这样的:运…

    Linux 2023年6月7日
    084
  • C语言—>指针

    当两个指针 p1, p2相减时, p2-p1就是从 p1到 p2,不包含 p2的元素个数,结果的类型是 ptrdiff_t #include int main() { int a[…

    Linux 2023年6月8日
    093
  • brew install mongodb

    install 安装请参考:https://blog.csdn.net/chanstic/article/details/104371316 //启&…

    Linux 2023年6月6日
    0136
  • .NET服务治理之限流中间件-FireflySoft.RateLimit

    FireflySoft.RateLimit自2021年1月发布第一个版本以来,经历了多次升级迭代,目前已经十分稳定,被很多开发者应用到了生产系统中,最新发布的版本是3.0.0。 它…

    Linux 2023年6月13日
    0102
  • linux学习之shell脚本

    【实验目的】‍ ‌ 通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL 程序设计的基础知识。对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方…

    Linux 2023年5月27日
    0134
  • CNN卷积神经网络的构建

    1.卷积神经网络由输入层,卷积层,激活函数,池化层,全连接层组成. input(输入层)–conv(卷积层)–relu(激活函数)–pool(池…

    Linux 2023年6月6日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球