1. 程式人生 > 程式設計 >用Python生成HTML表格的方法示例

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

在 郵件報表 之類的開發任務中,需要生成HTML表格。

使用Python生成HTML表格基本沒啥難度,for迴圈遍歷一遍資料並輸出標籤即可。 如果需要實現合併單元格,或者按需調整表格樣式,就比較麻煩了。

這時,可以試試本文的主角 —— html-table 包,藉助它可生成各種樣式的HTML表格。 接下來,以一個簡單的例子演示html-table的常用用法:

用Python生成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].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,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表格內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!