Python: запись в файлы Excel 2007+ (файлы .xlsx)

Есть ли модуль Python, который записывает файлы Excel 2007+?
Мне нужно написать файл длиннее 65535 строк, и только Excel 2007+ поддерживает его.


person Jonathan    schedule 23.11.2010    source источник


Ответы (7)


Есть две библиотеки, на которые вы можете взглянуть.

Python-xlsx и PyXLSX

РЕДАКТИРОВАТЬ: Как упоминается в комментариях, для написания вы проверяете openpyxl

person user225312    schedule 23.11.2010
comment
-1 ОП хочет записывать файлы Excel 2007+. Python-xlsx: крошечный код Python для синтаксического анализа данных из электронной таблицы Office Open XML — xlsx; pyXLSX: pyXLSX — библиотека классов Python для чтения файлов Excel 2007. - person John Machin; 23.11.2010

Взгляните на проект Эрика Газони openpyxl. Код можно найти на bitbucket.

person Mark Baker    schedule 23.11.2010

Вам следует взглянуть на xlsxcessive. Он предназначен для записи файлов xlsx и, возможно, немного более питонический.

person chmullig    schedule 01.02.2011
comment
Я также предпочитаю xlsxcessive для записи файлов xlsx. Он поддерживает объединение ячеек, что не поддерживается openpyxl. - person guettli; 17.08.2011
comment
Это все еще сохраняется? Коммиты на битбакете, похоже, внезапно прекратились (очень регулярно до 30 апреля 2011 г., затем ничего). - person John Machin; 18.03.2012
comment
А может и не быть. Примерно в то же время разработчик сменил работу, поэтому я думаю, что он перестал обновляться. :( - person chmullig; 22.03.2012
comment
Для справки, openpyxl теперь поддерживает объединенные ячейки. - person John Y; 01.02.2013

Модуль Python XlsxWriter записывает файлы xlsx версии 2007+.

person jmcnamara    schedule 28.03.2013

Если вы работаете в Windows и у вас установлен Excel 2007+, вы сможете использовать pywin32 и COM для записи файлов XLSX, используя почти тот же код, что и для записи файлов XLS... просто измените "сохранить как... .» часть в конце.

Вероятно, вы также можете писать файлы XLSX с помощью Excel 2003 с бесплатно загружаемым набором дополнений, но количество строк на листе будет ограничено 64 КБ.

person John Machin    schedule 23.11.2010

Pyvot: http://packages.python.org/Pyvot/tutorial.html, хотя это только для Excel 2010+

person googed    schedule 22.02.2012

Итак, вы хотите написать файл xlsx, мне на ум приходит dll Microsoft.office.excel.interop, но не использовать его на сервере.

Я знаю, что вы можете вызывать dll из python: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(office.11).aspx

person ykatchou    schedule 23.11.2010