tutorial poi para ooxml libreria example descargar java apache-poi

java - para - No se puede importar XSSF en Apache POI



java apache poi documentation (8)

Me refiero a la versión 3.7 del POI de Apache y recibo un error de "no se puede resolver" cuando lo hago:

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

Otras declaraciones de importación que hacen referencia a POI NO me dan errores, tales como:

import org.apache.poi.ss.usermodel.*;

¿¿Algunas ideas??


1) importó todos los JARS de la carpeta POI 2) Importó todos los JARS de la carpeta ooxml que un subdirectorio de la carpeta POI 3) Importó todos los JARS de la carpeta lib que es un subdirectorio de la carpeta POI

String fileName = "C:/File raw.xlsx"; File file = new File(fileName); FileInputStream fileInputStream; Workbook workbook = null; Sheet sheet; Iterator<Row> rowIterator; try { fileInputStream = new FileInputStream(file); String fileExtension = fileName.substring(fileName.indexOf(".")); System.out.println(fileExtension); if(fileExtension.equals(".xls")){ workbook = new HSSFWorkbook(new POIFSFileSystem(fileInputStream)); } else if(fileExtension.equals(".xlsx")){ workbook = new XSSFWorkbook(fileInputStream); } else { System.out.println("Wrong File Type"); } FormulaEvaluator evaluator workbook.getCreationHelper().createFormulaEvaluator(); sheet = workbook.getSheetAt(0); rowIterator = sheet.iterator(); while(rowIterator.hasNext()){ Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()){ Cell cell = cellIterator.next(); //Check the cell type after evaluating formulae //If it is formula cell, it will be evaluated otherwise no change will happen switch (evaluator.evaluateInCell(cell).getCellType()){ case Cell.CELL_TYPE_NUMERIC: System.out.print(cell.getNumericCellValue() + " "); break; case Cell.CELL_TYPE_STRING: System.out.print(cell.getStringCellValue() + " "); break; case Cell.CELL_TYPE_FORMULA: Not again break; case Cell.CELL_TYPE_BLANK: break; } } System.out.println("/n"); } //System.out.println(sheet); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); }​


Las clases para los formatos de archivo OOXML (como XSSF para .xlsx) están en un archivo jar diferente. Necesita incluir el contenedor poi-ooxml en su proyecto, junto con las dependencias para él

Puede obtener una lista de todos los componentes y sus dependencias en el sitio web de POI here .

Lo que probablemente desee hacer es descargar el paquete binario 3.11 , tomar el poi-ooxml y las dependencias en el directorio ooxml-lib . Importe estos a su proyecto y será ordenado.

Alternativamente, si usa Maven, puede here la lista de los atributos de los que querrá depender, pero querría ser algo como:

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11</version> </dependency>

La dependencia poi-ooxml maven extraerá el contenedor principal de POI y las dependencias por usted automáticamente. Si desea trabajar con formatos que no sean hojas de cálculo, también querrá depender del artefacto poi-scratchpad , como se detalla en la here


Necesitaba los siguientes archivos para mi implementación:

  • poi-ooxml-schemas-3.14.20160307.jar
  • commons-codec-1.10.jar (esto estaba en la carpeta "lib" del archivo zip que obtienes de apache)
  • curvesapi-1.03.jar (en la carpeta "ooxml-lib")
  • poi-3.14-20160307.jar
  • poi-ooxml-3.14-20160307.jar
  • xmlbeans-2.6.0.jar (en la carpeta "ooxml-lib")

(aunque honestamente, no estoy completamente seguro de que sean todos necesarios ...) Es un poco confuso porque están empaquetados de esa manera. Necesitaba colocarlos manualmente en mi propia carpeta "lib" y luego agregar las referencias ...

Maven siempre parece descargar más de lo que necesito, así que siempre coloco libaries / dlls y cosas así manualmente.


No describiste el entorno, de todos modos, debes descargar las bibliotecas de apache poi. Si está utilizando eclipse, haga clic con el botón derecho en su proyecto raíz, para que las propiedades y en la ruta de compilación java agreguen jar externo e importen en su proyecto esas bibliotecas:

xmlbeans-2.6.0; poi-ooxml-schemas- ...; poi-ooxml- ...; poi ...;


Para que OOXML funcione, necesita el contenedor POI-OOXML, que se empaqueta por separado del contenedor POI.

Descargue el contenedor POI-OOXML de la siguiente ubicación:

http://repo1.maven.org/maven2/org/apache/poi/poi-ooxml/3.11/poi-ooxml-3.11.jar

Para Maven2 agregue la dependencia a continuación -

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11</version> </dependency>


Problema: al importar la clase "org.apache.poi.xssf.usermodel.XSSFWorkbook" que muestra un error en eclipse.

Solución: use esta dependencia de maven para resolver este problema:

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency>

-Hari Krishna Neela


Si usas Maven:

poi => poi-ooxml en artifactId

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.12</version> </dependency>


Tuve el mismo problema, así que busqué en el archivo poi-3.17.jar y no había ningún paquete xssf dentro.

Luego revisé los otros archivos y encontré xssf int the poi-ooxml-3.17.jar

Entonces parece que las soluciones son agregar

poi-ooxml-3.17.jar

a su proyecto, ya que eso parece hacer que funcione (al menos para mí)