robinunix

python HTML展示表格数据(有合并的单元格)

拷贝一下代码并保存到本地,然后运行e5a48de588b67a6431333363373163它,再打开那个Demo的链接就可以看到效果了

#!/usr/bin/env python3
from collections import OrderedDict
from os.path import dirname, abspath, join as joinpath
 
L = [(1,2),(1,2),(1,3),(2,4),(2,5)]
column_names = (\'列名\', \'数据\')
 
odict = OrderedDict()
for k, v in L:
    if k not in odict:
        odict[k] = [v]
    else:
        odict[k].append(v)
         
sa = \'\'\'
<!DOCTYPE HTML>
<meta charset="UTF-8">
<html>
<body>
<table border="1" cellpadding="10">
<tr>
<th>{}</th>
<th>{}</th>
</tr>
\'\'\'.format(*column_names)
 
sc = \'\'\'
</table>
</body>
</html>
\'\'\'
 
sb = []
tdform = \'<td align="center">{}</td>\'.format 
for k, v in odict.items():
    if len(v) == 1:
        sb.append(\'<tr>\')
        sb.append(tdform(k))
        sb.append(tdform(v))
        sb.append(\'</tr>\')
    else:
        for i, subv in enumerate(v):
            sb.append(\'<tr>\')
            if i == 0:
                sb.append(\'<td rowspan="{}" align="center">{}</td>\'.format(
                    len(v), k))
            sb.append(tdform(subv))
            sb.append(\'</tr>\')
             
fn = \'table.html\'
ss = sa + \'\n\'.join(sb) + sc
try:
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(ss)
    ss = soup.prettify()
except:
    pass
     
with open(fn, \'w\') as f:
    f.write(ss)
     
print(ss)
print(\'Demo: file://\'+joinpath(abspath(dirname(__file__)), fn))

 

1.代码示例

<!DOCTYPE HTML>
<meta charset="UTF-8">
<html>
<body>
<table border="1" cellpadding="10">
<tr>
<th>列名</th>
<th>数据</th>
<th>hosts</th>
</tr>

<tr>
<td rowspan="5" align="center">1</td>
<td rowspan="2" align="center">2</td>
<td align="center">host2</td>
</tr>

<tr>
<td align="center">host2</td>
</tr>

<tr>
<td rowspan="3" align="center">3</td>
<td align="center">host3-1</td>
</tr>
<tr>
<td align="center">host3-2</td>
</tr>
<tr>
<td align="center">host3-3</td>
</tr>


<tr>
<td rowspan="2" align="center">2</td>
<td align="center">4</td>
<td align="center">host4</td>
</tr>
<tr>
<td align="center">5</td>
<td align="center">host5</td>
</tr>
</table>
</body>
</html>

效果

2.html代码: 

<!DOCTYPE HTML>
<meta charset="UTF-8">
<html>
<body>
<table border="1" cellpadding="10">
<tr>
<th>服务池</th>
<th>IP</th>
<th>hosts</th>
</tr>

<tr>
<td rowspan="5" align="center">1</td>
<td rowspan="2" align="center">2</td>
<td align="center">host2</td>
</tr>

<tr>
<td align="center">host2</td>
</tr>



<tr>
<td align="center">3</td>
<td rowspan="3" align="center">host3-1</td>
</tr>
<tr>
<td align="center">3</td>
</tr>
<tr>
<td align="center">3</td>
</tr>


<tr>
<td rowspan="2" align="center">2</td>
<td align="center">4</td>
<td align="center">host4</td>
</tr>
<tr>
<td align="center">5</td>
<td align="center">host5</td>
</tr>
</table>
</body>
</html>

效果

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2021-05-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-13
  • 2021-11-25
  • 2021-08-16
相关资源
相似解决方案