当前位置: 首页 > Web前端 > HTML5

用Python生成HTML表格

时间:2023-04-05 17:40:10 HTML5

在邮件报告等开发任务中,需要生成HTML表格。用Python生成HTML表格基本不难,只需要用for循环遍历数据,输出标签即可。如果需要合并单元格或者根据需要调整表格样式,那就比较麻烦了。这时候,你可以试试本文的主角——html-table包,使用它可以生成各种样式的HTML表格。下面用一个简单的例子来演示一下html-table的常用用法:开始之前,必须通过pip安装html-table包:$python-mpipinstallhtml-table安装完成后,可以导入HTMLTable类:fromHTMLTableimport(HTMLTable,)创建一个名为OrchardHarvestTable的新表:#Titletable=HTMLTable(caption='OrchardHarvestTable')Attachheader:#Tableheaderrowtable.append_header_rows((('name','yield(tons))','环比',''),('','','增加(吨)','增长率(%)'),))注意表头分两行,有些单元格需要合并,合并后的单元格需要留空。合并单元格设置:#合并单元格table[0][0].attr.rowspan=2table[0][1].attr.rowspan=2table[0][2].attr.colspan=2table[0]取出第一行是第一个标签;table0取出第一个cell,对应name;table0.attr是其标签的属性。单元格合并下一个单元格,标签属性rowspan需要设置为2。接下来添加数据,方法和表头类似,一共有3行:#数据行table.append_data_rows((('Lychee',11,1,10),('Mango',9,-1,-10),('Banana',6,1,20),))至此,数据准备好了,可以调整样式了。首先设置表格标题样式:#标题样式table.caption.set_style({'font-size':'15px',})设置

标签的样式:#表格样式,即
标签样式table.set_style({'border-collapse':'collapse','word-break':'keep-all','white-space':'nowrap','font-size':'14px',})上面CSS样式设置在
标签上,它作用于整个表格,影响表格边框,字体大小等,注意下面会覆盖到一些单元格(比如表头单元格)的字体大小。接下来设置每个单元格的样式,主要是指定边框样式:#统一设置所有单元格样式,标签设置样式;set_header_cell_style为每个标签而不是
table.set_cell_style({'border-color':'#000','border-width':'1px','border-style':'solid','padding':'5px',})接下来,设置标题单元格样式,指定颜色、字体大小和填充大小:#headerstyletable.set_header_row_style({'color':'#fff','background-color':'#48a6fb','font-size':'18px',})#覆盖表头单元格字体样式table.set_header_cell_style({'padding':'15px',})set_header_row_style给表格头部的两个
标签设置样式。您应该尝试在
标签上设置颜色和其他样式,以简化生成的HTML。减小子表头的字体大小,不再赘述:#减小子表头的字体大小table[1].set_cell_style({'padding':'8px','font-size':'15px',})遍历每一行数据,如果第二个单元格的值小于0,则设置样式标记为红色底色:#遍历数据行,如果增长量为负数,则为表中的行标记红色底色。iter_data_rows():ifrow[2].value<0:row.set_style({'background-color':'#ffdddd',})最后生成HTML文本:html=table.to_html()print(html)Appendix更多Python技术文章,请查看:Python语言小册子订阅更新,获取更多学习资料,请关注我们的微信公众号: