LINUX.ORG.RU

10 лет Apache POI

 , , ,


0

1

Apache Software Foundation анонсировал десятилетнюю годовщину проекта Apache POI — открытой библиотеки для чтения, записи и модификации офисных документов в форматах Microsoft, включая Word, PowerPoint, Excel, Outlook и Publisher. Библиотека используется в CERN, Deutsche Bank, Freddie Mac, IBM, J.P. Morgan, Lawrence Livermore National Laboratory, NASA, SAP, Siemens и других организациях. Также библиотека используется в OpenSource проектах Alfresco, JasperReports и Apache Tika.

Последняя стабильная версия, 3.7, вышла в октябре 2010. В августе 2011 вышла бета версия 3.8beta4.

Основные функции библиотеки:

  • Возможность чтения и записи форматов OLE2, включая .xls, .doc и .ppt
  • Возможность чтения и записи файлов OOXML, включая .xlsx, .docx и .pptx
  • Низкоуровневое API для OPC-контейнеров
  • Высокоуровневое развитое API для работы с таблицами Excel, документами Word и презентациями PowerPoint
  • Поддержка сообщений и вложений Outlook
  • Преобразование документов Excel и Word в HTML и XSL-FO

>>> Подробности

★★★★★

Последнее исправление: adriano32 (всего исправлений: 7)

Название самой либы и ее модулей - толстейший троллинг ) Одобря

vertexua ★★★★★
()

А кто в курсе истории развития библиотеки? Как обычно реверс-инжинирингом форматов писалось? Или MS как-то содействовало в разработке?

SteveBallmer
()
Ответ на: комментарий от SteveBallmer

The name was originally an acronym for «Poor Obfuscation Implementation», referring humorously to the fact that the file formats seemed to be deliberately obfuscated, but poorly, since they were successfully reverse-engineered.

(c) Wiki

Sosiska
()
Ответ на: комментарий от SteveBallmer

сначала реверсом, потом microsoft опубликовала спецификацию

maxcom ★★★★★
() автор топика

Интересно, в свете спихивания OpenOffice в криокамеру Apache, может эту библиотеку понемногу прикрутят к нему?

spoilt ★★★
()

полезная либа. хлеб тех, кто мордочки к бд пишет.

RedPossum ★★★★★
()

тег ява?
попробую на днях

etwrq ★★★★★
()

ммм, nice, только понадобился импорт в эти форматы.

aptyp ★★★★
()
Ответ на: комментарий от SteveBallmer

> А кто в курсе истории развития библиотеки? Как обычно реверс-инжинирингом форматов писалось? Или MS как-то содействовало в разработке?

С 2008 - микрософт один из главных контрибьюторов и спонсоров проекта. Переписывание под новые форматы делались уже с их помощью. Так что реверс-инджениринг - давно в прошлом (только первые версии).

siberean
()
Ответ на: комментарий от maxcom

У меня таких несколько (все 2010).
Вываливают

java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream
   at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:65)
...
java.io.EOFException: Unexpected end of ZLIB input stream
   at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:223)
   at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)
   at java.util.zip.ZipInputStream.read(ZipInputStream.java:146)
   at java.io.FilterInputStream.read(FilterInputStream.java:90)
   at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource$FakeZipEntry.<init>(ZipInputStreamZipEntrySource.java:114)
   at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:55)
   at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:82)
   at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:220)
   at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:63)
...

из чего делаю вывод - что 2010+ файлы - зипанутые, а POI это не поддерживает пока.

siberean
()
Ответ на: комментарий от maxcom

Там (в 2010 файлах) - что-то ещё, иное добавлено (внутренний zip?). К примеру, оффис 2007 у нас не открывает те же файлы. С 2010 - нет проблем.

siberean
()
Ответ на: комментарий от maxcom

К сожалению, не могу. Финансовая отчётность. Чёрт ногу сломит (очень сложные эксели). И оффиса 2010 у меня пока нет (только 2003+плагин) - чтобы попробовать чистый маленький 2010. Те файлы приходят от клиентов, которые пересохранили исходные файлы в одном из последних оффисов (2010 или 2011).

siberean
()
Ответ на: комментарий от siberean

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

siberean
()
Ответ на: комментарий от siberean

«Unexpected end of ZLIB input stream» больше похоже на битый ZIP. Вроде в 2010 офисе небыло изменений в формате контейнера

maxcom ★★★★★
() автор топика
Ответ на: комментарий от maxcom

Таких «битых» файлов пришло несколько. Когда же сохраняют как 2007 - всё в порядке. Пока ничего не могу сказать.

siberean
()
Ответ на: комментарий от siberean

Да, забыл совсем: открывали те файлы на машине с 2010, и всё вроде нормально показывало, т.е. скорее всего не битые, а что-то с форматом.

siberean
()

Буквально с месяц назад заюзал для парсинга/формирования doc/docx файлов. Весьма полезная либа.
Успехов проекту

nE0sIghT
()

Библиотека - супер. Одна из очень немногих библиотек, про которую я узнал из гугла впервые в жизни, и уже через полчаса сделал в своем приложении с ней всё, что было нужно. Но, очень бы хотелось чтобы версия 3.8 с поддержкой чистенького апи для потоковой записи больших xlsx релизнулась пораньше.

З.Ы. По ссылке можно наблюдать однозначный вин оформления документации к бибилиотеке: http://poi.apache.org/spreadsheet/quick-guide.html

moradan
()
Ответ на: комментарий от maxcom

У меня так же есть предположение - что это может происходить только с большими экселями (несколько мегабайт), т.е. оффис 2010 зипует в том случае (и те файлы вдруг становятся менее мегабайта). Простенькие же файлы ниже какого-то порога - могут и работать. Проверю предположение - когда работодатель поставит мне более последний оффис или приспичит. Пока же не критично.

siberean
()
Ответ на: комментарий от maxcom

Хм. Она используется (или использовалась) лишь для конвертации Excel-файлов. Вобще, между POI & OOo существует какая-то коллаборация.

markevichus ★★★
()
Ответ на: комментарий от maxcom

Ну из фич мне надо только запись в определенные ячейки, и всё. jxl работает как-то неудовлетворительно (может по полминуты xls'ку обрабатывать 3 страничную).

drakmail ★★★★
()
Ответ на: комментарий от drakmail

jxl - уже отжил своё. Он был актуален 5+ лет назад - когда ему не было альтернативы. Спасибо ему за это. Поддерживает только старый BIFF формат и не поддерживает форматы 2003,2007 итд. Не поддерживает макро, формулы итд.

Если надо большую скорость записи и если файлы пишутся с нуля (а не модифицируются) - то можно писать Tab-delimited текст-файл и сохранять с расширением .xls и бухгалтера даже не поймут что это не нативный эксель (можно также и как csv). Будет очень быстро.

anonymous
()
Ответ на: комментарий от maxcom

Понятно. Судя по тому, что описание ещё короче чем про Visio, видимо можно считать что поддержки нет вовсе никакой.

frob ★★★★★
()

Прикольно, проекту 10 лет, а я впервые о нём слышу... :(

cruxish ★★★★
()
Ответ на: комментарий от frob

Попутно: можно ли чем-нибудь в GNU/Linux просматривать/редактировать файлы *.vsd (Visio). А то более адекватной простой чертилки, чем Visio, в жизни не видел.

carasin ★★★★★
()
Ответ на: комментарий от adriano32

Спасибо за инфу. Только, насколько я понял, в настоящее время в LO/OO.o поддержки пока нет, эта фича только разрабатывается.
Offtop: неужели в Visio 2010 так испоганили интерфейс? Ну ладно Word; хрен с ним Excel... Но как с таким интерфейсом можно чертить?

carasin ★★★★★
()
Ответ на: комментарий от carasin

AP, тут carasin интересуется, с какой версии LO сможет открывать *.vsd «напрямую»?

adriano32 ★★★
()

АААА
в ней даже мой код есть +).
Надо будет посмотреть не выкинули ли его :).

vtVitus ★★★★★
()
Ответ на: комментарий от carasin

Не так прочитал вопрос :)

По всей видимости, начиная с 3.5. Посмотрим. В течение недели, надеюсь, будет подробная информация.

AP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.