#excel #pandas
Вопрос:
у меня есть один файл 1.excel, содержащий sheet_1, shee_2 и sheet_3
и у меня есть еще один файл 2.excel, содержащий лист_2
и я хочу обновить заменить файл 2.excel sheet_2 на файл 1.excel sheet_2
и я пытаюсь с
finaldest = '1.xlsx'
REPORT2WRITERFINAL = pd.ExcelWriter(finaldest)
path = '1.xlsx'
x0 = pd.ExcelFile(path, engine='openpyxl')
path2 = '2.xlsx'
x1 = pd.ExcelFile(path2, engine='openpyxl')
for sheet in x0.sheet_names:
if sheet in x1.sheet_names:
t0 = x1.parse(sheet, header=0)
t0.to_excel(REPORT2WRITERFINAL, startrow=0, startcol=1, sheet_name=sheet, index=False)
REPORT2WRITERFINAL.save()
REPORT2WRITERFINAL.close()
Ответ №1:
Вы должны использовать ExcelWriter
в режиме добавления со стратегией замены листа:
with pd.ExcelWriter('1.xlsx', mode='a', if_sheet_exists='replace') as x0,
pd.ExcelFile('2.xlsx') as x1:
for sheet in set(x0.book.sheetnames).intersection(x1.book.sheetnames):
df = x1.parse(sheet, header=0)
df.to_excel(x0, sheet, startrow=0, startcol=1, index=False)