Apache POI

Open-source API to access Microsoft Office formats

Apache POI
Разработчик(и)Фонд программного обеспечения Apache
Стабильный релиз
5.3.0 / 2 июля 2024 г. ; 6 месяцев назад [1] (2024-07-02)
РепозиторийРепозиторий POI
Написано вЯва
Операционная системаКроссплатформенный
ТипAPI для доступа к форматам Microsoft Office
ЛицензияЛицензия Apache 2.0
Веб-сайтpoi.apache.org

Apache POI , проект, реализуемый Apache Software Foundation , а ранее являвшийся подпроектом Jakarta Project , предоставляет чистые библиотеки Java для чтения и записи файлов в форматах Microsoft Office , таких как Word , PowerPoint и Excel .

История и дорожная карта

Первоначально название было аббревиатурой от "Poor Obfuscation Implementation" [2], юмористически ссылаясь на тот факт, что форматы файлов, казалось, были намеренно запутаны , но плохо, поскольку они были успешно реверсированы . Это объяснение — и те из похожих названий для различных подпроектов — были удалены с официальных веб-страниц, чтобы лучше продавать инструменты компаниям, которые не посчитали бы такой юмор уместным. Первоначальные авторы ( Эндрю С. Оливер и Марк Джонсон) также отметили существование гавайского блюда пои , приготовленного из измельченного корня таро , которое имело аналогичные уничижительные коннотации. [3]

Поддержка Office Open XML

POI поддерживает форматы файлов ISO/IEC 29500:2008 Office Open XML, начиная с версии 3.5. Значительный вклад в поддержку OOXML внесла Sourcesense, [4] компания с открытым исходным кодом , которая была заказана Microsoft для разработки этого вклада. [5] Эта ссылка вызвала споры, некоторые участники POI подвергли сомнению патентную защиту POI OOXML в отношении патентной лицензии Microsoft Open Specification Promise . [6]

Архитектура

Проект Apache POI содержит следующие подкомпоненты (значения аббревиатур взяты из старой документации):

  • POIFS (Poor Obfuscation Implementation File System [2] ) – этот компонент читает и записывает формат документа Microsoft OLE 2 Compound. Поскольку все файлы Microsoft Office являются файлами OLE 2 , этот компонент является базовым строительным блоком всех остальных элементов POI. Поэтому POIFS можно использовать для чтения более широкого спектра файлов, помимо тех, чьи явные декодеры уже написаны в POI.
  • HSSF (Horrible SpreadSheet Format [2] ) – читает и записывает файлы формата Microsoft Excel (XLS). Он может читать файлы, созданные Excel 97 и более поздними версиями; этот формат файла известен как формат BIFF 8. Поскольку формат файла Excel сложен и содержит ряд сложных характеристик, некоторые из более сложных функций не могут быть прочитаны.
  • XSSF (формат XML SpreadSheet) – читает и записывает файлы формата Office Open XML (XLSX). Похожий набор функций для HSSF, но для файлов Office Open XML.
  • HPSF (Horrible Property Set Format [2] ) – считывает информацию «Document Summary» из файлов Microsoft Office . По сути, это информация, которую можно увидеть, используя пункт меню Файл|Свойства в приложении Office .
  • HWPF (Horrible Word Processor Format [7] ) – предназначен для чтения и записи файлов формата Microsoft Word 97 (DOC). Этот компонент находится на начальных стадиях разработки.
  • XWPF (формат текстового процессора XML [7] ) — набор функций, аналогичный HWPF, но для файлов Office Open XML.
  • HSLF (Horrible Slide Layout Format [7] ) – чистая реализация Java для файлов Microsoft PowerPoint . Это дает возможность читать, создавать и редактировать презентации (хотя некоторые вещи делать проще, чем другие)
  • XSLF (формат слайд-шоу Open Office XML)
  • HDGF (Horrible DiaGram Format [7] ) – начальная реализация чистого Java для двоичных файлов Microsoft Visio . Она обеспечивает возможность чтения низкоуровневого содержимого файлов.
  • HPBF (Horrible PuBlisher Format [ требуется ссылка ] ) – чистая реализация Java для файлов Microsoft Publisher . [8]
  • HSMF (Horrible Stupid Mail Format [9] [ нужен лучший источник ] ) – чистая реализация Java для файлов Microsoft Outlook MSG. [10]
  • DDF (Dreadful Drawing Format [7] ) — пакет для декодирования формата Microsoft Office Drawing.
  • XDDF (формат ужасных рисунков XML)

Компонент HSSF является наиболее продвинутой функцией библиотеки. [11] Другие компоненты (HPSF, HWPF и HSLF) пригодны для использования, но менее функциональны. [12] [13]

Библиотека POI также предоставляется как расширение Ruby [14] или ColdFusion .

Существуют модули для платформ Big Data (например, Apache Hive/Apache Flink/Apache Spark), которые обеспечивают определенную функциональность Apache POI, например обработку файлов Excel. [15] [16]

История версий

Легенда:Неподдерживаемая версияСтарая версия, все еще поддерживаетсяПоследняя версияLatest preview versionБудущий релиз

Номер версии

Дата выпуска
Latest version: 5.3.02 июля 2024 г.
Old version, no longer maintained:5.2.525 ноября 2023 г.
Old version, no longer maintained:5.2.428 сентября 2023 г.
Old version, no longer maintained:5.2.316 сентября 2022 г.
Old version, no longer maintained:5.2.219 марта 2022 г.
Old version, no longer maintained:5.2.13 марта 2022 г.
Old version, no longer maintained:5.2.014 января 2022 г.
Old version, no longer maintained:5.1.01 ноября 2021 г.
Old version, no longer maintained:5.0.020 января 2021 г.
Old version, no longer maintained:4.1.214 февраля 2020 г.
Old version, no longer maintained:4.1.120 октября 2019 г.
Old version, no longer maintained:4.1.09 апреля 2019 г.
Old version, no longer maintained:4.0.07 сентября 2018 г.
Old version, no longer maintained:3.1715 сентября 2017 г.
Old version, no longer maintained:3.1619 апреля 2017 г.
Old version, no longer maintained:3.1521 сентября 2016 г.
Old version, no longer maintained:3.142 марта 2016 г.
Old version, no longer maintained:3.1329 сентября 2015 г.
Old version, no longer maintained:3.1211 мая 2015 г.
Old version, no longer maintained:3.1121 декабря 2014 г.
Old version, no longer maintained:3.10.118 августа 2014 г.
Old version, no longer maintained:3.108 февраля 2014 г.
Old version, no longer maintained:3.93 декабря 2012 г.
Old version, no longer maintained:3.826 марта 2012 г.
Old version, no longer maintained:3.729 октября 2010 г.
Old version, no longer maintained:3.614 декабря 2009 г.
Old version, no longer maintained:3.528 сентября 2009 г.
Old version, no longer maintained:3.219 октября 2008 г.
Old version, no longer maintained:3.129 июня 2008 г.
Old version, no longer maintained:3.0.24 февраля 2008 г.
Old version, no longer maintained:3.0.15 июля 2007 г.
Old version, no longer maintained:3.018 мая 2007 г.
Old version, no longer maintained:2.5.129 февраля 2004 г.
Old version, no longer maintained:2.529 февраля 2004 г.
Old version, no longer maintained:2.026 января 2004 г.
Old version, no longer maintained:1.5.116 июня 2002 г.
Old version, no longer maintained:1.56 мая 2002 г.
Old version, no longer maintained:1.2.019 января 2002 г.
Old version, no longer maintained:1.1.04 января 2002 г.
Old version, no longer maintained:1.0.211 января 2002 г.
Old version, no longer maintained:1.0.14 января 2002 г.
Old version, no longer maintained:1.0.030 декабря 2001 г.

Смотрите также

Ссылки

  1. ^ "История изменений" . Получено 28 октября 2024 г.
  2. ^ abcd Sundaram, Elango (22 марта 2004 г.), «Exceling in Excel with Java», JavaWorld , получено 21 июля 2020 г.
  3. Домашняя страница POI от октября 2004 г., Coyote Song, архивировано с оригинала 15 октября 2004 г., показывая оригинальные объяснения названий.
  4. ^ ИсточникСенс
  5. ^ Макдугалл, Пол (26 марта 2008 г.). «Microsoft рассматривает компоненты с открытым исходным кодом для Office 2007». InformationWeek . Получено 21 июля 2020 г.
  6. ^ Оливер, Эндрю С. (27 марта 2008 г.), «Отклонение любого обремененного пожертвования Microsoft в пользу POI», архивы рассылки по разработке POI , получено 21 июля 2020 г.
  7. ^ abcde "Документация API POI". Poi.apache.org . Получено 7 марта 2019 г. .
  8. ^ "POI-HPBF - Java API для доступа к файлам формата Microsoft Publisher". Poi.apache.org . Получено 7 марта 2019 г. .
  9. Codeplex NPOI, Microsoft, заархивировано из оригинала 28 марта 2012 г.
  10. ^ POI-HSMF, Apache, архивировано из оригинала 7 августа 2011 г. , извлечено 31 июля 2011 г.
  11. ^ POI-HSSF, Apache
  12. ^ POI-HWPF, Apache
  13. ^ POI-HSLF, Apache
  14. ^ POI-Ruby, Apache
  15. ^ "HadoopOffice для Hive/Flink/Spark". Github.com. 19 июля 2018 г. Получено 7 марта 2019 г.
  16. ^ "Spark Excel". Github.com . Получено 7 марта 2019 г. .
  • Официальный сайт
Retrieved from "https://en.wikipedia.org/w/index.php?title=Apache_POI&oldid=1253895227"