0

使用 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

4

2 回答 2

0

我找到了一个使用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",它切换附加模式。

于 2019-08-19T17:46:41.060 回答
0

请参阅 openpyxl 上讨论此相同功能的此问题:https ://bitbucket.org/openpyxl/openpyxl/issues/171/

它目前不是 openpyxl 的内置函数,但该线程有一些可用的解决方法可能适合您的需求。

编辑:还在这里发现了一个可能重复的问题:使用 Openpyxl 将工作表从一个工作簿复制到另一个工作簿

于 2019-08-19T17:29:05.517 回答