我试图为xlsx添加Apache POI,这让我在出错后出错了

时间:2017-03-28 07:12:34

标签: java apache-poi

以下是我的代码

public static String ReadXLSX(String sheetName, int rowNo, int colNo) throws FileNotFoundException, IOException{


File file =new File(ConfigReader.getProperty("filePath"));

FileInputStream fis = new FileInputStream(file);

XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheet(sheetName);
XSSFRow row = sheet.getRow(rowNo);

XSSFCell cell =row.getCell(colNo);

String cellValue = cell.getStringCellValue();
wb.close();

return cellValue;

}

我使用poi-ooxml-3.15.0来处理此问题,但我一个接一个地收到错误:

首先是:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject

然后在获得解决后,它成了:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap

在它解决之后,它变成了:

Exception in thread "main" java.lang.NoClassDefFoundError: org/openxmlformats/schemas/drawingml/x2006/main/ThemeDocument

是什么导致了这个?

2 个答案:

答案 0 :(得分:3)

好的,你的错误似乎与构建路径有关。你至少需要的是以下罐子:

  • poi-3.15.jar
  • POI-OOXML-3.15.jar
  • POI-OOXML-架构 - 3.15.jar
  • 的xmlbeans-2.6.0.jar

我不确定你是否也需要这些:

  • 公地编解码器1.10.jar
  • 公地collections4-4.1.jar
  • curvesapi-1.04.jar

答案 1 :(得分:1)

如果你正在使用maven,只需将下面的依赖关系放在下面就可以了。其余的。

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

否则,只需下载下面的所有jar并添加到您的类路径中:

  • poi-ooxml 3.15
  • poi 3.15
  • commons-codec 1.10
  • commons-collections4 4.1
  • poi-ooxml-schemas 3.15
  • xmlbeans 2.6.0
  • stax-api 1.0.1
  • curvesapi 1.04