将新的.xlsx添加到工作表(标签)中的现有.xlsx

时间:2018-08-29 08:22:15

标签: python excel python-3.x pandas openpyxl

我有一个类似下面的代码。

#使用熊猫执行某些操作后,我已将df写入.xlsx

df.to_excel('file5.xlsx',index=False) # This excel has a single tab(sheet) inside

然后,我有另一个.xlsx文件(已提供)Final.xlsx,里面有多个标签(工作表),如file1,file2,file3,file4。我想将新创建的file5.xls添加到Final.xlsx作为工作表file4之后的新工作表。

在Anky提供的答案下面,它将表xlsx file5.xlsx添加到'Final.xlsx',但是表file1 2 3 4中的内容丢失了,格式被破坏了,数据也丢失了... < / p>

import pandas
from openpyxl import load_workbook

book = load_workbook('foo.xlsx')
writer = pandas.ExcelWriter('foo.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df1=pd.read_excel('file5.xlsx')
df1.to_excel(writer, "new",index=False)

writer.save()

需要帮助解决此问题。

我在另一个问题中提出了这个问题-Data missing, format changed in .xlsx file having multiple sheets using pandas, openpyxl while adding new sheet in existing .xlsx file

1 个答案:

答案 0 :(得分:1)

import pandas
from openpyxl import load_workbook

book = load_workbook('foo.xlsx')
writer = pandas.ExcelWriter('foo.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

df.to_excel(writer, "file5",index=False)

writer.save()

Sheetname可以是您想要保留的任意名称:file5