追加到 Excel 中的工作表会创建一个新工作表,而不是追加

Posted

技术标签:

【中文标题】追加到 Excel 中的工作表会创建一个新工作表,而不是追加【英文标题】:Appending to a sheet in Excel creates a new sheet instead of appending 【发布时间】:2021-07-22 04:20:50 【问题描述】:

我正在尝试使用此代码将数据框附加到 Excel 中的现有工作表,但不是将新数据附加到它,而是创建一个新工作表。代码如下:

import pandas as pd
import openpyxl as op

df = ['normal_dataframe']

with pd.ExcelWriter('test.xlsx', engine='openpyxl', mode='a') as writer:
    df.to_excel(writer, sheet_name='Sheet1', header=False, index=False)

'test.xlsx' 有一个'Sheet1',但是当附加文件时,有 2 个工作表。 “Sheet1”和“Sheet11”。

【问题讨论】:

这可能有助于***.com/questions/38074678/… 我也发现了那个帖子。当我尝试该方法时,它给了我一个 BadZipFile 错误,这是此类工作的一个已知错误。上面的代码效果很好,它只是创建了一个新工作表,而不是附加到指定的工作表。 您需要将工作簿绑定到 ExcelWriter 对象。 你能解释一下吗?我对此并不熟悉。 【参考方案1】:

使用 COM 的一种方法:

import win32com.client

xl = win32com.client.Dispatch("Excel.Application")

path = r'c:\Users\Alex20\Documents\test.xlsx'
wb = xl.Workbooks.Open(path)
ws = wb.Worksheets("Sheet1")
ws.Range("E9:F10").Value = [[9,9],[10,10]]
wb.Close(True)
xl.Quit()

【讨论】:

如果我使用'w',它会覆盖该工作表中的所有内容,我需要将其添加到指定的工作表中。 对不起,我应该指定这是 Linux。

以上是关于追加到 Excel 中的工作表会创建一个新工作表,而不是追加的主要内容,如果未能解决你的问题,请参考以下文章

什么是Excel的工作表?如何创建新的工作表?

即使使用追加模式,使用 Excelwriter 将 DataFrame 写入新工作表也会删除所有其他工作表

将大型 .csv 文件导入 Excel,

用python将两个excel文件中的所有工作表复制到一个新的excel?

如何创建指向同一工作簿中的其他Excel工作表的超链接

SSAS Cube excel 数据透视表向下钻取