Какую библиотеку следует использовать для написания XLS из Linux / Python?

Я бы с удовольствием хороший родная библиотека Python для записи XLS, Но она, похоже, не существует. К счастью, языка Jython делает.

поэтому я пытаюсь решить между jexcelapi и Apache HSSF: http://www.andykhan.com/jexcelapi/tutorial.html#writing http://poi.apache.org/hssf/quick-guide.html

(Я не могу использовать com automation, потому что я не на Windows, и даже если бы я был, я не мог позволить себе офисные лицензии.)

мой первоначальный мысли в том, что POI / HSSF очень тщательный, но также и очень Java-все кажется немного сложнее, чем должно быть. Хорошая документация, но моя голова болит, пытаясь преодолеть разрыв между тем, что она описывает, и тем, что мне нужно сделать.

jexcepapi, похоже, имеет более простой, приятный (для меня) интерфейс, но не имеет очень хорошей документации или сообщества.

Что бы вы использовали и почему?

5 ответов


Что с xlwt?


+1 для xlwt. См. блог Мэтта Харрисона для сообщений на Как использовать xlwt и как обращаться с большими электронными таблицами. Кроме того, проверьте python-excel группа в Google "Если вы используете Python для чтения, записи или иного управления файлами Excel".


Я бы использовал JExcelApi, но только потому, что я использовал его раньше. Никогда не прикасался к HSSF. Самый большой шоу-стопор, который я могу вспомнить, JExcelApi не поддерживает несколько форматов в одной ячейке (например, половина текста жирным шрифтом, другая половина курсивом или что-то в этом роде). Я думаю, что в целом JExcelApi более ограничен, чем HSSF, но ограничения никогда не мешали мне.

и да, документация разрежена для интерфейса (и не существует для базовых механизмов), но я думал, что это было выполнимый...


Я лично dis-советую JExcel, если вы намерены использовать что-то более простой текст, чтобы преуспеть и наоборот.

более продвинутые функции абстрагируются от базовых (в основном недокументированных) низкоуровневых спецификаций кода / (документированных) Excel.

еще одна проблема, с которой мы столкнулись, - jexcel терпит неудачу при встрече с недопустимыми формулами. и если вам нужно проанализировать клиентские электронные таблицы, это проблема.

также новый POI поддержка версий (почти) seemless как xls, так и xlsx одновременно.


Excel предоставляет тот же API автоматизации OLE, используемый VBA для всего, что поддерживает COM. Вы можете использовать win32com (который включен в ActiveState Python по умолчанию) для управления электронными таблицами так же, как и в VBA.