Добавить новый .xlsx к существующему .xlsx на листе (вкладка) - PullRequest
0 голосов
/ 29 августа 2018

У меня есть один код, который выглядит так, как показано ниже.

# После выполнения некоторой операции с использованием панд я написал df в .xlsx

df.to_excel('file5.xlsx',index=False) # This excel has a single tab(sheet) inside

Затем у меня есть другой файл .xlsx (уже предоставлен) Final.xlsx, в котором есть несколько вкладок (листов), например file1,file2,file3,file4. Я хочу добавить вновь созданное file5.xls к Final.xlsx как новый лист после листа file4.

Ниже ответа, предоставленного Anky, он добавляет лист xlsx file5.xlsx к 'Final.xlsx', но содержимое на листах file1 2 3 4 пропускается, форматирование нарушается, а также отсутствуют данные ...

import pandas
from openpyxl import load_workbook

book = load_workbook('foo.xlsx')
writer = pandas.ExcelWriter('foo.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df1=pd.read_excel('file5.xlsx')
df1.to_excel(writer, "new",index=False)

writer.save()

Нужна помощь, чтобы исправить это ..

Я задал это в отдельном вопросе - Данные отсутствуют, формат изменен в файле .xlsx, имеющем несколько листов с использованием панд, openpyxl при добавлении нового листа в существующий файл .xlsx

1 Ответ

0 голосов
/ 29 августа 2018
import pandas
from openpyxl import load_workbook

book = load_workbook('foo.xlsx')
writer = pandas.ExcelWriter('foo.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

df.to_excel(writer, "file5",index=False)

writer.save()

Имя листа может быть любым, например: file5

.
...