OpenPyXl: открыть существующую электронную таблицу в режиме write_only - PullRequest
0 голосов
/ 26 ноября 2018

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

Заранее спасибо за помощь!


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...