Python 未在 Excel 工作簿中使用 pandas 附加数据

Python not appending data with pandas in Excel Workbook

我正在编写一个 python 程序来从三个不同的 excel 工作簿中获取数据,并将其附加到具有预先存在的数据的第四个工作簿中的不同 sheet。虽然当我 运行 代码没有错误并且 excel 文件的修改日期正在更改时,数据实际上并没有附加到工作簿中。请帮帮我:

import pandas as pd
from openpyxl import load_workbook

#reading all three ticket excel sheets
df1 = pd.read_excel("sheet a.xlsx")
df2 = pd.read_excel("sheet b.xlsx")
df3 = pd.read_excel("sheet c.xlsx")

#Creating Panadas Excel writer using xlsxwriter as engine
writer = pd.ExcelWriter(r"main_excel.xlsx", engine = "openpyxl")

writer.book = load_workbook(r"main_excel.xlsx")
writer.sheets = {ws.title: ws for ws in writer.book.worksheets}

#reading existing file
reader = pd.read_excel(r"main_excel.xlsx")

#converting dataframes to xlsxwriter excel object
df1.to_excel(writer, sheet_name ="sheet a", index = False, header = False,startrow=len(reader)+1)
df2.to_excel(writer, sheet_name ="sheet b", index = False, header = False,startrow=len(reader)+1)
df3.to_excel(writer, sheet_name ="sheet c", index = False, header = False,startrow=len(reader)+1)

writer.close()

sheeta,b,c 与 sheetd 中的 sheets 重名。

所以你的代码可以在我的系统上运行。

它首先提取每个 excel 文件的第一个 sheet,然后将其作为新的 sheet 添加到 main_excel.xlsx,但 len(reader)+1 为空白每个新 sheet 顶部的行,其中 reader 是 main_excel.xlsx 的第一个 sheet,len(reader) 是那个 sheet。这就是你想要的吗?

如果您不想要空白行,可以跳过读取现有文件并从 .to_excel(...).

中删除 startrow 参数

你说 sheeta,b,c 与 sheetd 中的 sheets 同名,在这种情况下,“sheeta”到“ sheet main_excel.xlsx 中的 c" 将被覆盖。