Откройте существующую электронную таблицу в режиме write_only.Python

Программы на Python
Anonymous
Откройте существующую электронную таблицу в режиме write_only.

Сообщение Anonymous »

У меня возникают проблемы с потреблением памяти при потоковой передаче данных в существующий шаблон Excel с помощью OpenPyXl.
Мой процесс выглядит следующим образом:
  • Откройте существующий шаблон
  • Перенесите данные на 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, если у кого-то есть другие предложения. Ура!

Подробнее здесь: https://stackoverflow.com/questions/534 ... -only-mode

Вернуться в «Python»