Open-source API to access Microsoft Office formats
Apache POI , un proyecto dirigido por la Apache Software Foundation y anteriormente un subproyecto del Proyecto Jakarta , proporciona bibliotecas Java puras para leer y escribir archivos en formatos de Microsoft Office , como Word , PowerPoint y Excel .
Historia y hoja de ruta
El nombre era originalmente un acrónimo de "Poor Ofuscation Implementation" (Implementación deficiente de ofuscación), [2] haciendo referencia humorística al hecho de que los formatos de archivo parecían estar deliberadamente ofuscados , pero de forma deficiente, ya que se habían diseñado a la inversa con éxito . Esta explicación (y las de los nombres similares para los diversos subproyectos) se eliminaron de las páginas web oficiales para comercializar mejor las herramientas a las empresas que no considerarían apropiado ese humor. Los autores originales ( Andrew C. Oliver y Marc Johnson) también señalaron la existencia del plato hawaiano poi , hecho con raíz de taro machacada , que tenía connotaciones igualmente despectivas. [3]
Compatibilidad con Office Open XML
POI admite los formatos de archivo Office Open XML ISO/IEC 29500:2008 desde la versión 3.5. Una contribución significativa para la compatibilidad con OOXML provino de Sourcesense, [4] una empresa de código abierto a la que Microsoft encargó desarrollar esta contribución. [5] Este enlace generó controversia, ya que algunos colaboradores de POI cuestionaron la protección de patentes de POI OOXML en relación con la licencia de patentes Open Specification Promise de Microsoft . [6]
Arquitectura
El proyecto Apache POI contiene los siguientes subcomponentes (el significado de las siglas se toma de la documentación antigua):
- POIFS (Sistema de archivos de implementación de ofuscación deficiente [2] ): este componente lee y escribe el formato de documento compuesto OLE 2 de Microsoft . Dado que todos los archivos de Microsoft Office son archivos OLE 2 , este componente es el bloque de construcción básico de todos los demás elementos POI. Por lo tanto, POIFS se puede utilizar para leer una variedad más amplia de archivos, más allá de aquellos cuyos decodificadores explícitos ya están escritos en POI.
- HSSF (Horrible SpreadSheet Format [2] ): lee y escribe archivos en formato Microsoft Excel (XLS). Puede leer archivos escritos a partir de Excel 97; este formato de archivo se conoce como formato BIFF 8. Como el formato de archivo de Excel es complejo y contiene una serie de características complicadas, no se pueden leer algunas de las funciones más avanzadas.
- XSSF (XML SpreadSheet Format): lee y escribe archivos con formato Office Open XML (XLSX). Conjunto de funciones similar al de HSSF, pero para archivos Office Open XML.
- HPSF (Horrible Property Set Format [2] ): lee la información del "Resumen del documento" de los archivos de Microsoft Office . Básicamente, se trata de la información que se puede ver utilizando el elemento de menú Archivo|Propiedades dentro de una aplicación de Office .
- HWPF (Horrible Word Processor Format [7] ): tiene como objetivo leer y escribir archivos en formato Microsoft Word 97 (DOC). Este componente se encuentra en las etapas iniciales de desarrollo.
- XWPF (formato de procesador de textos XML [7] ): conjunto de características similar a HWPF, pero para archivos Office Open XML.
- HSLF (Horrible Slide Layout Format [7] ): una implementación puramente Java para archivos de Microsoft PowerPoint . Esto brinda la capacidad de leer, crear y editar presentaciones (aunque algunas cosas son más fáciles de hacer que otras)
- XSLF (formato de presentación de diapositivas XML de Open Office)
- HDGF (Horrible DiaGram Format [7] ): una implementación inicial pura de Java para archivos binarios de Microsoft Visio . Proporciona la capacidad de leer el contenido de bajo nivel de los archivos.
- HPBF (Horrible PuBlisher Format [ cita requerida ] ): una implementación pura de Java para archivos de Microsoft Publisher . [8]
- HSMF (Horrible Stupid Mail Format [9] [ se necesita una mejor fuente ] ): una implementación pura de Java para archivos MSG de Microsoft Outlook . [10]
- DDF (Dreadful Drawing Format [7] ): un paquete para decodificar el formato de dibujo de Microsoft Office.
- XDDF (XML Formato de dibujo terrible)
El componente HSSF es la característica más avanzada de la biblioteca. [11] Otros componentes (HPSF, HWPF y HSLF) son utilizables, pero tienen menos funciones. [12] [13]
La biblioteca POI también se proporciona como una extensión de Ruby [14] o ColdFusion .
Existen módulos para plataformas de Big Data (por ejemplo, Apache Hive/Apache Flink/Apache Spark), que proporcionan ciertas funcionalidades de Apache POI, como el procesamiento de archivos Excel. [15] [16]
Historial de versiones
Véase también
Referencias
- ^ "Historia de los cambios" . Consultado el 28 de octubre de 2024 .
- ^ abcd Sundaram, Elango (22 de marzo de 2004), "Excelente en Excel con Java", JavaWorld , consultado el 21 de julio de 2020
- ^ Página de inicio de POI de octubre de 2004, Coyote Song, archivada desde el original el 15 de octubre de 2004, mostrando explicaciones originales para el nombre.
- ^ FuenteSense
- ^ McDougall, Paul (26 de marzo de 2008). "Microsoft apunta a componentes de código abierto para Office 2007". InformationWeek . Consultado el 21 de julio de 2020 .
- ^ Oliver, Andrew C. (27 de marzo de 2008), "Rechazo de cualquier donación de Microsoft GRAVADA a POI", archivos de la lista de correo de desarrollo de POI , consultado el 21 de julio de 2020
- ^ abcde "Documentación de la API de POI". Poi.apache.org . Consultado el 7 de marzo de 2019 .
- ^ "POI-HPBF - API de Java para acceder a archivos con formato Microsoft Publisher". Poi.apache.org . Consultado el 7 de marzo de 2019 .
- ^ Codeplex NPOI, Microsoft, archivado desde el original el 28 de marzo de 2012
- ^ POI-HSMF, Apache, archivado desde el original el 7 de agosto de 2011 , consultado el 31 de julio de 2011
- ^ PDI-HSSF, Apache
- ^ PDI-HWPF, Apache
- ^ POI-HSLF, Apache
- ^ PDI-Ruby, Apache
- ^ "HadoopOffice para Hive/Flink/Spark". Github.com. 19 de julio de 2018. Consultado el 7 de marzo de 2019 .
- ^ "Spark Excel". Github.com . Consultado el 7 de marzo de 2019 .
Enlaces externos