我有一个Final.xlsx
,其中包含多个工作表-shee1, sheet2 ,sheet3
,每个工作表都有一些图形和数据。我还有另一个文件file5.xlsx
,我想在选项卡的Final.xlsx
中添加。以下代码可以正常工作,但是Final.xlsx
现有工作表数据已丢失(内容,格式,grpahs等)。需要帮助解决此问题。
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()
答案 0 :(得分:1)
内部,Pandas使用xlrd库读取xlsx文件。这个库很快,但是,因为它本质上是固定在对BIFF格式的支持上,所以对OOXML的支持是有限的。看到Pandas对图表一无所知,反正无法保留它们。
openpyxl在openpyxl.utils.dataframe
中提供了实用程序,用于在XLSX的行和Pandas Dataframe之间进行切换,从而使您在工作时可以完全控制,同时几乎将所有其他内容保留在文件中。但是,就您而言,您甚至不需要熊猫,因为您可以简单地循环“ file5.xlsx”中的单元格并将它们复制到其他文件中。