【问题标题】:Add new .xlsx to an existing .xlsx in sheet(tab)将新的 .xlsx 添加到工作表(选项卡)中的现有 .xlsx
【发布时间】:2018-08-29 08:22:14
【问题描述】:

我有一个代码如下所示..

#使用 pandas 执行一些操作后,我已将 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 已丢失,格式已损坏且数据丢失...

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

【问题讨论】:

  • 什么是“excel”? Excel 是电子表格软件的名称。使用此软件,您可以创建 工作簿,其中包含一个或多个 工作表 来组织数据和执行计算。没有“卓越”之类的东西。对于您需要帮助的事情,请使用准确的术语,而不是品牌名称。
  • @teylyn 我的意思是.xlsx 文件,更新/

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


【解决方案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

【讨论】:

  • 您必须使用 read_excel 将 xlsx 文件作为 df 读取,然后使用上面的代码写出,或者您可以直接写入您拥有的 df 而不是将其保存到 file5
  • foo.xlsx 是具有多张工作表的 excel 文件,您想将 df 写入 foo.xlsx ,所以不要将其保存为 excel 文件 file5,而是使用代码并将工作表名称命名为文件5
  • 只是一个问题,如果没有提供已经创建的代码,此代码将如何检测file5.xlsx 这里..
  • 所以,您不需要创建 file5.xlsx,而是将 df 放入 file5.xlsx,而是创建一个名为 file5 的工作表,将 df 直接写入 foo.xlsx。如果制作 file5.xlsx 是绝对强制性的,您可以将 df 写入 file5.xlsx 并使用 read_excel 再次读取,然后在我的代码中使用 dfnew = pd.read_excel('file5.xlsx') ,将 dfnew 替换为 df在那种情况下。
  • 它的工作,file5 被添加到工作表中,但是其中的file1 to file4 内容被不同颜色着色,奇怪吗?
猜你喜欢
  • 1970-01-01
  • 2021-07-22
  • 2019-01-16
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 2017-07-03
  • 1970-01-01
  • 2014-10-01
相关资源
最近更新 更多