追加到 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 中的工作表会创建一个新工作表,而不是追加的主要内容,如果未能解决你的问题,请参考以下文章
即使使用追加模式,使用 Excelwriter 将 DataFrame 写入新工作表也会删除所有其他工作表