ws.Range(ws.Cells(1, 1), ws.Cells(styled_df.data.shape[0] + 1, styled_df.data.shape[1])).Value = styled_df.data.values.tolist() # 设置表格样式写入工作表加上列标题如何实现
时间: 2024-03-26 22:38:47 浏览: 89
要实现将带有样式的 pandas.DataFrame 写入 Excel 工作表,并将列标题也写入工作表,可以按照以下步骤进行:
1. 获取 Excel 工作表对象 ws 和样式 DataFrame 对象 styled_df。
2. 将样式 DataFrame 对象的数据部分转换为二维列表,即 styled_df.data.values.tolist()。
3. 在二维列表的头部插入一行列标题,即 [styled_df.columns.to_list()]。
4. 将新的二维列表写入 Excel 工作表的单元格中,即 ws.Range(ws.Cells(1, 1), ws.Cells(styled_df.data.shape[0] + 1, styled_df.data.shape[1])).Value = [styled_df.columns.to_list()] + styled_df.data.values.tolist()。
5. 遍历样式 DataFrame 对象的样式信息,将每个单元格的样式应用到 Excel 工作表的对应单元格中。
以下是具体的代码实现:
```
# 获取 Excel 工作表对象 ws 和样式 DataFrame 对象 styled_df
ws = wb.Worksheets('Sheet1')
styled_df = get_styled_dataframe()
# 获取样式 DataFrame 对象的数据部分和列标题
data = styled_df.data.values.tolist()
columns = styled_df.columns.to_list()
# 将列标题插入到数据部分的头部
data.insert(0, columns)
# 将新的二维列表写入 Excel 工作表的单元格中
ws.Range(ws.Cells(1, 1), ws.Cells(styled_df.data.shape[0] + 1, styled_df.data.shape[1])).Value = data
# 遍历样式 DataFrame 对象的样式信息,将每个单元格的样式应用到 Excel 工作表的对应单元格中
for i, row in styled_df.iterrows():
for j, cell in row.iteritems():
apply_cell_style(ws.Cells(i+1, j+1), cell)
```
阅读全文