使⽤html-table模块⽣成html格式
样例图⽰如下:
开始之前,须通过 pip 安装 html-table 包:
$ python -m pip install html-table
安装完毕后,即可导⼊ HTMLTable 类:
from HTMLTable import (
HTMLTable,
)
#创建⼀个新表格,标题为果园收成表:
# 标题
table = HTMLTable(caption='果园收成表')
#附上表头:
# 表头⾏
table.append_header_rows((
('名称', '产量 (吨)', '环⽐', ''),
('', '', '增长量 (吨)', '增长率 (%)'),
))
#注意到,表头分为两⾏,有些单元格需要合并,被合并的单元格需要留空占位。
#合并单元格设置:
# 合并单元格
table[0][0].wspan = 2
table[0][1].wspan = 2
table[0][2].lspan = 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> 标签上,作⽤于整个表格,影响表格边框、字体⼤⼩等。注意到,下⾯会覆盖部分单元格(如表头单元格)的字体⼤⼩。
以上 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',
})
html网页设计 table #遍历每个数据⾏,如果第 2 个单元格值⼩于 0 ,设置样式标红背景颜⾊:
# 遍历数据⾏,如果增长量为负,标红背景颜⾊
for row in table.iter_data_rows():
if row[2].value < 0:
row.set_style({
'background-color': '#ffdddd',
})
#最后,⽣成 HTML ⽂本:
html = _html()
print(html)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论