使用Apache POI创建.xlsx文件时发生java.lang.NoClassDefFoundError

使用Apache POI创建.xlsx文件时发生java.lang.NoClassDefFoundError,java,android,excel,apache-poi,Java,Android,Excel,Apache Poi,我正在尝试使用ApachePOI创建一个.xlsx文件。这是我的代码: FileOutputStream outputStream1=null; XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("data"); try { target.createNewFile(); } catch (IOException e) { // TODO Auto-generat

我正在尝试使用ApachePOI创建一个.xlsx文件。这是我的代码:

FileOutputStream outputStream1=null;
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("data");

try {
    target.createNewFile();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
try {
    outputStream1 = new FileOutputStream(Environment.getExternalStorageDirectory().getAbsolutePath()+"/file_A/"+"test_Ab"+".xlsx");
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

for(int i=0;i<iteration;i++)
{
    XSSFRow row = sheet.createRow(i);
    Cell cell = row.createCell(0);
    cell.setCellValue("dsfasdf");
}

try {

    FileOutputStream out = new FileOutputStream(target);
    workbook.write(out);
    out.close();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

我正在使用poi-3.7.jar。这里的问题是什么?

您需要下载
NoClassDefFoundError
的原因是:执行代码时需要在exception中指定类的定义,但在指定的包下找不到它

根本原因:通常情况下,要么包含该类定义的jar文件被添加到构建路径中,要么没有添加到构建路径中


您可以下载各种版本的ApachePOIjar

我还认为您没有将POI-3.7.jar导入到您的项目中!首先,您应该创建一个文件夹库,然后将jar包文件复制到此库,然后切换到build path,您可以用谷歌搜索它。

如上所述,要使用XSSF之类的OOXML代码,您需要类路径上的
poi
poi OOXML
jar及其依赖项


在撰写本文时,ApachePOI的最新版本是3.10。我建议您下载二进制发布包,在那里您可以找到所有POI JAR及其所有依赖项。这将帮助您解决您需要的问题,但是对于使用XSSF,简单的回答是您基本上需要所有这些问题

在我的例子中,只有当你的应用程序包含以下库时,它才起作用:

compile files('libs/dom4j-1.6.1.jar')
compile files('libs/stax-api-1.0.1.jar')
compile files('libs/xmlbeans-2.6.0.jar')
compile files('libs/poi-3.10.1-20140818.jar')
compile files('libs/poi-ooxml-3.10.1-20140818.jar')
compile files('libs/poi-ooxml-schemas-3.10.1-20140818.jar')
您可以在此处下载它们:,全部位于“poi-bin-3.10.1-20140818.zip”存档中


请不要尝试安装更新的版本,它将不工作(至少对于Android),只有3.10.1和更低版本。

异常说明
XSSFWorkBook
未找到,您需要导入包含此类的jar。可能你还没有添加jar文件。可能是jar文件的副本。请指定该jar的链接好吗?@nidhin:我正在android应用程序中尝试这样做,将更新我的问题。我已经完成了。。但是我是否应该将该文件夹中的所有JAR都包含在我的参考库中?您可以将包中提供的所有JAR都包含在内。查看本页了解jar文件的依赖关系以获得更好的清晰度当我添加poi-3.10和poi-3.10-ooxml jar并运行它时,我得到了以下错误:java.lang.Verify errorNow,这是一些单独的问题。在进行一些研究之后,将其作为另一个SO问题记录下来。当我运行此程序时,我得到一个java.lang.VerifyError。我在这里发布了一个类似的查询。请帮忙。我已经处理好了,但现在是这样:请看我编辑的问题:
compile files('libs/dom4j-1.6.1.jar')
compile files('libs/stax-api-1.0.1.jar')
compile files('libs/xmlbeans-2.6.0.jar')
compile files('libs/poi-3.10.1-20140818.jar')
compile files('libs/poi-ooxml-3.10.1-20140818.jar')
compile files('libs/poi-ooxml-schemas-3.10.1-20140818.jar')