【问题标题】:Data missing, format changed in .xlsx file having multiple sheets using pandas, openpyxl while adding new sheet in existing .xlsx file数据丢失,.xlsx 文件中的格式发生了变化
【发布时间】:2019-02-04 02:02:20
【问题描述】:

我有一个 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()

【问题讨论】:

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


【解决方案1】:

Pandas 在内部使用 xlrd 库来读取 xlsx 文件。这个库很快,但是因为它本质上是支持 BIFF 格式的,所以它对 OOXML 的支持是有限的。鉴于 Pandas 对图表一无所知,它无论如何也无法保留它们。

openpyxl 在openpyxl.utils.dataframe 中提供实用程序,用于在 XLSX 的行和 Pandas Dataframes 之间切换,让您在工作时完全控制,同时将几乎所有其他内容保留在文件中。但是,在您的情况下,您甚至不需要 Pandas,因为您可以简单地遍历“file5.xlsx”中的单元格并将它们复制到您的其他文件中。

【讨论】:

  • 所以您是说,我可以在不使用 pandas 的情况下在新选项卡的 Final.xlsx 中添加新工作表(file5.xls)?对不起这个问题,我第一次使用 excel ..
猜你喜欢
  • 2020-01-27
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 2018-07-18
  • 2010-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多