样例图示如下:

开始之前,须通过 pip 安装 html-table 包:

$ python -m pip install html-table

安装完毕后,即可导入 HTMLTable 类:

from HTMLTable import (HTMLTable,
)#创建一个新表格,标题为 果园收成表 :
# 标题
table = HTMLTable(caption='果园收成表')
#附上表头:
# 表头行
table.append_header_rows((('名称',  '产量 (吨)',  '环比',       ''),('',    '',       '增长量 (吨)',   '增长率 (%)'),
))
#注意到,表头分为两行,有些单元格需要合并,被合并的单元格需要留空占位。
#合并单元格设置:
# 合并单元格
table[0][0].attr.rowspan = 2
table[0][1].attr.rowspan = 2
table[0][2].attr.colspan = 2
"""
table[0] 取出第一行,即第一个 <tr> 标签; table0 取出第一个单元格,对应 名称 ; table0.attr 则是其标签 <th> 的属性。 该单元格合并下方一个单元格,需要将标签属性 rowspan 设置为 2 。
接着,加入数据,方法与表头类似,总共有 3 行:"""
# 数据行
table.append_data_rows((('荔枝', 11, 1, 10),('芒果', 9, -1, -10),('香蕉', 6, 1, 20),
))
#至此,数据准备完毕,可以着手调整样式。先设置表格标题样式:
# 标题样式
table.caption.set_style({'font-size': '15px',
})
#设置 <table> 标签的样式:
# 表格样式,即<table>标签样式
table.set_style({'border-collapse': 'collapse','word-break': 'keep-all','white-space': 'nowrap','font-size': '14px',
})"""
以上 CSS 样式设置在 <table> 标签上,作用于整个表格,影响表格边框、字体大小等。 注意到,下面会覆盖部分单元格(如表头单元格)的字体大小。
接着,设置每个单元格的样式,主要是规定边框样式:
"""
# 统一设置所有单元格样式,<td>或<th>
table.set_cell_style({'border-color': '#000','border-width': '1px','border-style': 'solid','padding': '5px',
})#接着,设置表头单元格样式,规定颜色、字体大小、以及填充大小:
# 表头样式
table.set_header_row_style({'color': '#fff','background-color': '#48a6fb','font-size': '18px',
})# 覆盖表头单元格字体样式
table.set_header_cell_style({'padding': '15px',
})"""
set_header_row_style 将样式设置到表头两个 <tr> 标签上; set_header_cell_style 则将样式设置到每个 <th> 标签上。 应该尽量将颜色等样式设置到 <tr> 标签上,而不是 <th> 标签上,以精简生成的 HTML 。将次级表头字体大小调小,不再赘述:
"""
# 调小次表头字体大小
table[1].set_cell_style({'padding': '8px','font-size': '15px',
})#遍历每个数据行,如果第 2 个单元格值小于 0 ,设置样式标红背景颜色:
# 遍历数据行,如果增长量为负,标红背景颜色
for row in table.iter_data_rows():if row[2].value < 0:row.set_style({'background-color': '#ffdddd',})#最后,生成 HTML 文本:
html = table.to_html()
print(html)

使用html-table模块生成html格式相关推荐

  1. VUE Table复杂表格生成带格式的excel(多表头、合并单元格、边框、居中、背景)

    VUE Table复杂表格生成带格式的excel(多表头.合并单元格.边框.居中.背景) 因为工作需要,在网上找了很多都不太行无意之间看到一个大佬的打码拿过来改了改居然可以用! 原文链接:https: ...

  2. Vs code自动生成Doxygen格式注释

    前言 ​ 程序中注释的规范和统一性的重要性不言而喻,本文就推荐一种在用vscode编写代码时自动化生成标准化注释格式的方法,关于Doxygen规范及其使用可查看博文 代码注释规范之Doxygen. ​ ...

  3. Qt5生成Word格式报告

    引言 一使用ActiveQt模块 二子线程中使用 三准备word模板 四代码 插入书签位置 批量插入 插入表格 方法一利用Range对象定位后插入表格 方法二利用bookmark定位后插入表格 五其他 ...

  4. configparser模块和PyYAML模块生成和修改配置文件

    文章目录: 1 configparser模块 2 PyYAML模块 2.2 yaml基本使用 2.2.1 使用yaml.load()读取yaml文件,并获取其中的配置信息 2.2.2 使用yaml.l ...

  5. DEDECMS模块插件制作举例-模块生成向导

    下面用一个企业招聘信息作为例子让大家熟悉一下DEDECMS的模块插件制作方法. 登录DEDECMS后台,打开模块管理->模块生成向导 模块名称:企业招聘信息 联系Email:redaug@qq. ...

  6. 使用GCC生成无格式二进制文件(plain binary files)

    使用C语言生成一个二进制文件 使用自己喜欢的文本编辑器写一个test.c: int main() { } 再使用如下命令编译: gcc –c test.c ld –o test –Ttext 0x0 ...

  7. python亿级mysql数据库导出_Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法...

    本文实例讲述了python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf- ...

  8. Java纯后端生成PDF格式报表的三种方案(包含echarts图表)

    最近做了一个奇葩的需求,研究了一下Java纯后端生成PDF报表的方案,顺便将研究的方案做个总结复盘,分享一下. 需求分析:Java后端定时任务统计汇总成报表数据,并生成PDF格式的报表文件,并通过邮件 ...

  9. springboot结合Freemarker模板生成docx格式的word文档(附代码)

    首先参考的是这篇文章: java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园参考:https://my.oschina.net/u/3737136/blo ...

最新文章

  1. Leetcode | Maximal Rectangle
  2. CMPP和SMPP协议比较
  3. 4.12 总结-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. 【springboot中使用拦截器】
  5. boost::math模块计算 Bessel 和 Neumann 函数的零点的测试程序
  6. SCN exercise navigation的实现原理
  7. 把变量赋值给寄存器_散装 vs 批发谁效率高?变量访问被ARM架构安排的明明白白...
  8. 数字化时代在线教育行业营销解决方案
  9. mysql主从同步错误记录。
  10. Java工具包工具类,java.util.concurrent 包下工具类的使用
  11. 装饰模式-包装request和response
  12. 【已解决】SyntaxError: Non-UTF-8 code starting with ‘\xe4‘ in file
  13. 【BZOJ】3396: [Usaco2009 Jan]Total flow 水流 (最大流)
  14. CentOS linux系统将UTC时间修改为CST时间
  15. java找不到符号 类_得到错误java:找不到符号类
  16. 小米 gps信号测试软件,实时查看,防走丢神器:小米 米兔GPS定位器 防盗跟踪器 使用评测...
  17. 服务器受美国保护网站,该网站服务器受美国保护
  18. 计算机论文课题来源,浅析论文题目的来源和意义
  19. fatal: unable to connect to gitlab.domian: gitlab.domian : Temporary failure in name resolution
  20. MATLAB 数据分析方法(第2版)1.2 MATLAB基础概述

热门文章

  1. PyTorch系列入门到精通——生成对抗网络一瞥
  2. qt向服务器传输文字_Qt实现客户端与服务器消息发送
  3. 计算机作文1000字,丢失的计算机作文1000字
  4. linux中改localhome名称,修改 /var/lib/locales/supported.d/local 文件(使用 locale -a 命令查看系統中所有已配置的 locale)...
  5. ffmpeg sdk java_推荐一个强大的音视频处理的开源项目!
  6. matlab中未定义与 ‘cell‘ 类型的输入参数相对应的运算符 ‘+‘ 的解决方案
  7. 机器学习实战(十)Apriori(关联分析)
  8. 自动化测试学习之路--json、dom编程
  9. lms算法的verilog实现_数字通信同步技术的MATLAB与FPGA实现
  10. angular使用动态组件后属性值_Angular 2-组件