У меня проблемы с использованием памяти при потоковой передаче данных в существующий шаблон Excel с использованием OpenPyXl.
Мой процесс выглядит следующим образом: 1. Откройте существующий шаблон 2. Потоковая передача данных на 3 разных листа 3. Сохраните рабочую книгу и загрузите ее пользователю
Код ниже: path = r'template.xlsx '
output = BytesIO()
# Saving to Excel
book = load_workbook(path)
days_ws = book['Days']
for r in dataframe_to_rows(days_df, index=True, header=True):
days_ws.append(r)
rates_ws = book['Daily Rates']
for r in dataframe_to_rows(rates_df, index=True, header=True):
rates_ws.append(r)
settings_ws = book['Settings']
for r in dataframe_to_rows(settings_df, index=True, header=True):
settings_ws.append(r)
with NamedTemporaryFile() as tmp:
book.save(tmp.name)
tmp.seek(0)
stream = tmp.read()
Чего я хотел бы добиться, так это возможности открыть существующую электронную таблицу в режиме write_only, чтобы обеспечить возможность потоковой передачи данных в рабочие книги без значительных затрат памяти.Я знаю, что это возможно при создании рабочих листов, однако я не смог найти пример с использованием существующего.
Я был бы рад работать с любыми библиотеками или модулями за пределами OpenPyXl, если у кого-то есть другие предложения.Ура!
Заранее спасибо за помощь!