Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История и дорожная карта [ править ]

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

Поддержка Office Open XML [ править ]

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

Архитектура [ править ]

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

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

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

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

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

История версий [ править ]

См. Также [ править ]

  • Соглашения об открытой упаковке
  • Программное обеспечение Office Open XML

Ссылки [ править ]

  1. ^ «История изменений» . 2021.01.20 . Источник 2021-01-20 .
  2. ^ a b c d Сундарам, Эланго (22 марта 2004 г.), «Превосходство в Excel с Java» , JavaWorld , получено 21 июля 2020 г.
  3. ^ Домашняя страница POI от октября 2004 г. , Coyote Song, заархивировано из оригинала 15.10.2004.с оригинальными пояснениями к именованию.
  4. ^ SourceSense
  5. Макдугалл, Пол (26 марта 2008 г.). «Компоненты с открытым исходным кодом Microsoft Eyes для Office 2007» . Информационная неделя . Проверено 21 июля 2020 .
  6. Оливер, Эндрю С. (27 марта 2008 г.), «Отклонение любого ОБЯЗАТЕЛЬНОГО пожертвования Microsoft для POI» , архивы списков рассылки разработки POI , получено 21 июля 2020 г.
  7. ^ a b c d e «Документация по 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, архивируются с оригинала на 2011-08-07 , извлекаться 2011-07-31
  11. ^ POI-HSSF , Apache
  12. ^ POI-HWPF , Apache
  13. ^ POI-HSLF , Apache
  14. ^ POI-Ruby , Apache
  15. ^ «HadoopOffice для Hive / Flink / Spark» . Github.com. 2018-07-19 . Проверено 7 марта 2019 .
  16. ^ «Искра Excel» . Github.com . Проверено 7 марта 2019 .

Внешние ссылки [ править ]

  • Официальный веб-сайт