首页 > 解决方案 > 在 excel 文件中加载工作表并将其保存到另一个不同的 excel 文件

问题描述

使用 python 3,我正在尝试将现有 excel 文件中的工作表附加到另一个 excel 文件中。

我在这个 excel 文件中有条件格式,所以我不能只使用 pandas。

from openpyxl import load_workbook

final_wb = load_workbook("my_final_workbook_with_lots_of_sheets.xlsx")
new_wb = load_workbook("workbook_with_one_sheet.xlsx")

worksheet_new = new_wb['Sheet1']
final_wb.create_sheet(worksheet_new)

final_wb.save("my_final_workbook_with_lots_of_sheets.xlsx")

此代码不起作用,因为该.create_sheet方法仅制作一个新的空白表,我想将我worksheet_new从另一个文件加载的我插入到final_wb

标签: pythonopenpyxlexcel-automation

解决方案


我找到了一个使用pandas.ExcelWriter的解决方案,它也在后台使用 xlrd 和 openpyxl :

我创建了两个示例 excel 文件:

  • test1.xlsx
  • test2.xlsx

并将第一张表附加test1.xlsxtest2.xlsx

In [1]: import pandas as pd                                                                              

In [2]: from pandas import ExcelWriter                                                                   

In [3]: with ExcelWriter("test2.xlsx", mode="a") as writer: 
   ...:     df1 = pd.read_excel("test1.xlsx", sheet_name=0) 
   ...:     df1.to_excel(writer, sheet_name="New sheet name") 

重要的是mode="a",它切换附加模式。


推荐阅读