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下使用压力测试工具stress

    首先解压安装包到/usr/local/src/下 mv stress-1.0.4.tar.gz /usr/local/src​tar -zxf stress-1.0.4.tar.g…

    Linux 2023年6月13日
    080
  • 雷霆传奇H5光柱版游戏详细图文架设教程

    前言 想体验经典传奇的热血PK吗?想体验满级VIP的尊贵吗?想体验一刀99999的爽快吗?各种极品炫酷时装、坐骑、翅膀、宠物通通给你,就在光柱版雷霆传奇H5! 本文讲解雷霆传奇架设…

    Linux 2023年6月7日
    0131
  • django学习__1

    Django python网络编程回顾 之前我们介绍过web应用程序和http协议,简单了解过web开发的概念。Web应用程序的本质 接收并解析HTTP请求,获取具体的请求信息 处…

    Linux 2023年6月7日
    096
  • 19-TCP、UDP的区别和应用场景

    可靠性TCP 提供交付保证,这意味着一个使用TCP协议发送的消息是保证交付给客户端的,如果消息在传输过程中丢失,那么它将重发。UDP是不可靠的,它不提供任何交付的保证,一个数据包在…

    Linux 2023年6月7日
    078
  • 上篇:34个JavaScript栗子,从易到难。

    alert("hello world") document.write("hello world") console.log("好…

    Linux 2023年6月7日
    077
  • powershell配置自动补全

    powershell配置自动补全 一、需求: 看到老师上课用mac命令行有自动补全功能,发现真的爽。但是自己的windows powershell不能使用自动补全功能。有了需求,就…

    Linux 2023年6月13日
    0122
  • ThinkPHP5 远程命令执行漏洞

    一、ThinkPHP介绍 轻量级框架,内部OOP和面向过程代码都存在,是国人自己开发的框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,…

    Linux 2023年6月14日
    068
  • 学生管理系统(初级)

    #include #include #include #define Size sizeof(struct Student) struct Student *p = NULL; t…

    Linux 2023年6月7日
    093
  • How to Operate SharePoint User Alerts with PowerShell

    When you migrate list or site, the user alerts in the site will not be migrated together w…

    Linux 2023年5月28日
    0136
  • 如何使用IDEA进行DOCKER调试

    引言在日常的开发过程中我们使用的开发环境通常与正式环境并不一致,这样就比较容易出现一些意外。于是我们通常会借助docker来让我们的开发和正式环境一致。那如何在docker中进行运…

    Linux 2023年6月14日
    0104
  • phpcms如何在前台文章列表前显示所属类别名称

    最近做单位网站模版遇到的问题,欲实现的效果: 但是phpcms中自带的文章列表标签没有这个功能,数据库中文章表中也只有类别id的字段,因此不能通过简单的{$r[catname]}读…

    Linux 2023年6月13日
    087
  • 使用 Spring Boot Admin 监控应用状态

    1 Spring Boot Actuator Spring Boot Actuator 是 Spring Boot 提供的对应用的自省和监控功能,如健康检查,审计,指标收集,HTT…

    Linux 2023年6月7日
    093
  • 从零开始制作一个linux iso镜像

    一、前言 对于一个极简化的linux系统而言,只需要三个部分就能组成,它们分别是一个linux内核、一个根文件系统和引导。以下是本文制作linux iso镜像所用到的系统和软件: …

    Linux 2023年5月27日
    078
  • zabbix自定义监控mysql主从状态和延迟

    zabbix自定义监控mysql主从状态和延迟 zabbix自定义监控mysql主从状态和延迟 zabbix自定义监控mysql主从状态 zabbix自定义监控mysql主从延迟 …

    Linux 2023年6月13日
    0113
  • vscode搜索所有文件夹中所有文件的方法

    最近在看opencv相关的内容,看到画图这一部分时,提示我 这些代码都来自OpenCV代码的sample文件夹。 按照他的提示,我打开了相应的文件夹,却发现,so many 文件 …

    Linux 2023年6月14日
    0262
  • Linux NTP服务配置

    bash;gutter:true; 外部ntp服务器地址:0.cn.pool.ntp.org 内部ntp服务器地址1:192.168.57.200 内部ntp服务器地址2:192….

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