将两个dataframe分别输出到一个excel里的不同sheet,并将表格区域实线
时间: 2024-01-23 18:03:53 浏览: 124
可以使用 `pandas` 库中的 `ExcelWriter` 类来将两个 `dataframe` 分别输出到一个 `excel` 文件里的不同 `sheet` 中,并且使用 `xlsxwriter` 来设置表格区域的实线。
下面是一个示例代码:
```python
import pandas as pd
# 生成示例 dataframe
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
# 定义文件名和表格区域
filename = 'output.xlsx'
sheetname1 = 'Sheet1'
sheetname2 = 'Sheet2'
cell_range1 = 'A1:B4'
cell_range2 = 'A1:B4'
# 创建 ExcelWriter 对象
writer = pd.ExcelWriter(filename, engine='xlsxwriter', options={'x_scale': 1, 'y_scale': 1, 'dash_type': 'solid'})
# 将 df1 输出到 sheet1 中
df1.to_excel(writer, sheet_name=sheetname1, index=False, startrow=0, startcol=0)
# 将 df2 输出到 sheet2 中
df2.to_excel(writer, sheet_name=sheetname2, index=False, startrow=0, startcol=0)
# 获取 xlsxwriter 中的 workbook 和 worksheet 对象
workbook = writer.book
worksheet1 = writer.sheets[sheetname1]
worksheet2 = writer.sheets[sheetname2]
# 设置表格区域实线
for worksheet in [worksheet1, worksheet2]:
worksheet.conditional_format(cell_range1, {'type': 'blanks',
'format': None,
'stop_if_true': True})
worksheet.conditional_format(cell_range2, {'type': 'blanks',
'format': None,
'stop_if_true': True})
worksheet.conditional_format(cell_range1, {'type': 'no_blanks',
'format': None})
worksheet.conditional_format(cell_range2, {'type': 'no_blanks',
'format': None})
# 保存 Excel 文件
writer.save()
```
在上面的代码中,我们首先使用 `pandas` 创建了两个 `dataframe`,然后定义了输出的文件名、sheet 名称和表格区域。接着,我们使用 `ExcelWriter` 类创建了一个 `writer` 对象,并设置了 `xlsxwriter` 的参数 `options`,将表格区域实线。然后,我们使用 `to_excel` 方法将两个 `dataframe` 分别输出到不同的 `sheet` 中,并指定了 `startrow` 和 `startcol` 参数来确定输出的起始行和列。接下来,我们使用 `writer.book` 和 `writer.sheets` 获取 workbook 和 worksheet 对象,并使用 `worksheet.conditional_format` 方法来设置表格区域实线。最后,我们调用 `writer.save` 方法将修改后的 `excel` 文件保存到磁盘中。
阅读全文