无法在Apache POI中导入XSSF

我引用了Apache POI的3.7版本,当我这样做的时候,我得到了一个“无法解决”的错误:

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

其他引用POI的导入语句不要给我错误,例如:

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

有任何想法吗??

为了使OOXML正常工作,您需要POI-OOXML jar,它是从POI jar中分别打包的。

从以下位置下载POI-OOXML广告牌 –

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

对于Maven2添加下面的依赖项 –

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

OOXML文件格式的类(例如.xlsx的XSSF)位于不同的Jar文件中。 您需要在项目中包含poi-ooxml jar以及它的依赖项

您可以在这里获取POI网站上的所有组件及其依赖项的列表。

你可能想要做的是下载3.11二进制包 , poi-ooxml获取poi-ooxml jar以及ooxml-lib目录下的依赖关系。 将这些导入到您的项目中,您将被sorting。

或者,如果你使用Maven,你可以在这里看到你想要依赖的artifaats的列表,但是它可能是这样的:

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

poi-ooxml maven依赖将自动为你提供主POI jar和依赖关系。 如果您想使用非电子表格格式,那么也需要依赖poi-scratchpad工件,详见POI组件页面

如果你使用Maven:

poi => poi-ooxml in artifactId

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

问题:导入在eclipse中显示错误的“org.apache.poi.xssf.usermodel.XSSFWorkbook”类。

解决scheme:使用这个maven dependency来解决这个问题:

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

哈里克里希纳尼拉

1)从POI文件夹导入所有的JARS 2)从POI文件夹的子目录ooxml文件夹导入所有的JARS 3)从POI文件夹的子目录lib文件夹导入所有的JARS

 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(); }​ 

你没有描述环境,反正你应该下载apache poi库。 如果你使用的是Eclipse,右键单击你的根项目,所以属性和在java构buildpath添加外部jar和导入到你的项目这些库:

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

我需要下列文件来执行:

  • POI-OOXML-架构 – 3.14.20160307.jar
  • commons-codec-1.10.jar(这是从Apache获得的压缩文件的“lib”文件夹)
  • curvesapi-1.03.jar(在“ooxml-lib”文件夹中)
  • POI-3.14-20160307.jar
  • POI-OOXML-3.14-20160307.jar
  • xmlbeans-2.6.0.jar(在“ooxml-lib”文件夹中)

(虽然说实话,我并不完全确定他们都是必要的……)有点混乱,因为他们是这样打包的。 我需要将它们手动放置在我自己的“lib”文件夹中,然后添加引用…

Maven似乎总是下载比我需要的,所以我总是手动地放置libaries / DLL和类似的东西。