Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 27, 2017 12:11:35

xammett
Зарегистрирован: 2014-12-08
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

можно ли писать в excel файл построчно

Всем привет.
Ситуация следующая: есть машина с небольшими ресурсами:
1 ядро и 1 гиг оперативы
Иногда на этой машине генерится excel с помощью питона(openpyxl)
Вопрос следующий можем ли мы писать построчно в файл методами openpyxl?
Дело в том, что память и проц сильно оверхедятся при записи большого числа строк.
В планах переехать на отдельный микросервис, но не скоро.
Проблема в том, что workbook накапливает много строк в памяти, а потом целиком сливает на диск.

Офлайн

#2 Апрель 27, 2017 16:25:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

можно ли писать в excel файл построчно

Как говориться месье знает толк в в извращениях. По всей видимости просто не надо писать не xls файл а в обычный.



Офлайн

#3 Апрель 28, 2017 04:49:56

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

можно ли писать в excel файл построчно

Формируйте xlsx сами. Там просто zip архив +xml-данные +cтили +(могут быть бинарники сторонних объектов, но полагаю не ваш случай). Возьмите образцовый, Пишите сами xml как текстовый файл, а потом подмешивайте в образцовый файл-архив вместо существующего.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Апрель 28, 2017 06:57:36

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

можно ли писать в excel файл построчно

PooH
Там просто zip архив
Так в том и дело. Для малых модификаций это либо перепаковка zip на каждое добавление - представляете затраты времени? Либо держать все данные в памяти - практически нулевая надежность и решение уж никак не для слабенького железа. Еще вариант сделать zip Без компрессии. Но опять косяк, данные внутри все равно xml. Я не большой спец по этому формату, но думаю что он требует полной перезаписи контента при обновлении данных и для большинства простых решений опять полная загрузка лога в память.

xammett
Проблема в том, что workbook накапливает много строк в памяти, а потом целиком сливает на диск.
Я думаю что это так потому что с xls/xlsx форматом данных иначе и не сделаешь.

Спрашивается зачем все эти развлечения? Пишите обычную текстовую таблицу. exel без проблем ее откроет (кстати как и море других программ в отличии от xlsx файла).

Пытаться сделать из xls лог или архив с данными очень плохое решение.



Отредактировано doza_and (Апрель 28, 2017 07:04:08)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version