这个表格再修改一下把第一个项目分类作为一个合并的总列
时间: 2024-04-08 15:30:21 浏览: 46
易语言高级表格合并列相同内容
好的,我可以帮你修改代码,将第一个项目分类作为一个合并的总列。以下是修改后的代码:
```python
import pandas as pd
# 创建数据框
data = pd.DataFrame({
'项目分类': ['项目A', '项目B', '项目C'],
'工作项': ['工作项1', '工作项2', '工作项3'],
'预计完成时间': ['2022-01-01', '2022-01-02', '2022-01-03'],
'今日进度': ['', '', ''],
'昨日进展': ['', '', ''],
'今日进展': ['', '', ''],
'卡点': ['', '', '']
})
# 生成可编辑的HTML表格
html = '''
<!DOCTYPE html>
<html>
<head>
<style>
table {
font-family: Arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
.editable {
background-color: #ffffff;
}
h2 {
color: #333333;
}
</style>
</head>
<body>
<h2>交互式日报</h2>
<table>
<thead>
<tr>
<th rowspan="2">项目分类</th>
<th>工作项</th>
<th>预计完成时间</th>
<th>今日进度</th>
<th>昨日进展</th>
<th>今日进展</th>
<th>卡点</th>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
'''
# 循环遍历数据,生成HTML表格的内容
for index, row in data.iterrows():
if index == 0:
html += f'<tr><td rowspan="{len(data)}">{row["项目分类"]}</td>'
else:
html += '<tr>'
for col in data.columns[1:]:
if col == '项目分类' or col == '工作项' or col == '预计完成时间':
html += f'<td>{row[col]}</td>'
else:
html += f'<td contenteditable="true" class="editable">{row[col]}</td>'
html += '</tr>'
html += '''
</tbody>
</table>
</body>
</html>
'''
# 保存HTML文件
with open('interactive_report.html', 'w') as file:
file.write(html)
```
在上面的代码中,我使用了HTML的`rowspan`属性来将第一个项目分类作为一个合并的总列。在循环遍历数据生成HTML表格内容时,判断是否是第一行,如果是,则在该行的第一个单元格中设置`rowspan`属性,并将其值设为数据框的行数。这样就可以实现第一个项目分类作为一个合并的总列的效果。保存并运行该代码后,将生成包含合并总列的交互式日报HTML文件。
阅读全文