用Python生成HTML表格的方法示例

时间:2021-05-22

在 邮件报表 之类的开发任务中,需要生成HTML表格。

使用Python生成HTML表格基本没啥难度,for循环遍历一遍数据并输出标签即可。 如果需要实现合并单元格,或者按需调整表格样式,就比较麻烦了。

这时,可以试试本文的主角 —— html-table 包,借助它可生成各种样式的HTML表格。 接下来,以一个简单的例子演示html-table的常用用法:

开始之前,须通过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 = 2table[0][1].attr.rowspan = 2table[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)

到此这篇关于用Python生成HTML表格的方法示例的文章就介绍到这了,更多相关Python生成HTML表格内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章