Откройте существующую электронную таблицу в режиме 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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