Найти - Пользователи
Полная версия: можно ли писать в excel файл построчно
Начало » Python для новичков » можно ли писать в excel файл построчно
1
xammett
Всем привет.
Ситуация следующая: есть машина с небольшими ресурсами:
1 ядро и 1 гиг оперативы
Иногда на этой машине генерится excel с помощью питона(openpyxl)
Вопрос следующий можем ли мы писать построчно в файл методами openpyxl?
Дело в том, что память и проц сильно оверхедятся при записи большого числа строк.
В планах переехать на отдельный микросервис, но не скоро.
Проблема в том, что workbook накапливает много строк в памяти, а потом целиком сливает на диск.
doza_and
Как говориться месье знает толк в в извращениях. По всей видимости просто не надо писать не xls файл а в обычный.
PooH
Формируйте xlsx сами. Там просто zip архив +xml-данные +cтили +(могут быть бинарники сторонних объектов, но полагаю не ваш случай). Возьмите образцовый, Пишите сами xml как текстовый файл, а потом подмешивайте в образцовый файл-архив вместо существующего.
doza_and
PooH
Там просто zip архив
Так в том и дело. Для малых модификаций это либо перепаковка zip на каждое добавление - представляете затраты времени? Либо держать все данные в памяти - практически нулевая надежность и решение уж никак не для слабенького железа. Еще вариант сделать zip Без компрессии. Но опять косяк, данные внутри все равно xml. Я не большой спец по этому формату, но думаю что он требует полной перезаписи контента при обновлении данных и для большинства простых решений опять полная загрузка лога в память.

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

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

Пытаться сделать из xls лог или архив с данными очень плохое решение.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB