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" 将被覆盖。
我正在编写一个 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" 将被覆盖。