我正在尝试将数据框写入一个工作簿上的现有Excel工作表。我在此excel工作簿中还有其他工作表,不应受到影响。我要覆盖的工作表是一个名为“数据”的选项卡。我下面的代码:
df= pd.read_sql(sql='EXEC [dbo].[spData]', con=engine)
excel_file_path = "C:/Shared/Test.xlsx"
book = load_workbook(excel_file_path)
writer = ExcelWriter(excel_file_path, engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.to_excel(writer, sheet_name='Data', index=False, header=[
'A','B','C','D','E','F'])
writer.save()
该代码已经在调试模式下运行了很长时间,没有错误,但是我不确定以上内容在我期望的操作中是否正确。我可以看到该文件显示为0KB,因此它已经摆脱了其他工作表,因为原始文件为55939kb。我能够使用ExcelWriter和引擎'openpyxl'作为新工作表写入工作簿。但是在上面的代码中,我想用数据框中的数据替换工作表的内容。
答案 0 :(得分:0)
这可以添加mode ='a'
writer = ExcelWriter(excel_file_path, engine='openpyxl', mode='a')