如何在Java-Web Start应用程序上读取excel文件

时间:2013-09-13 11:09:32

标签: java excel apache-poi

我正在开发一个java-web-start应用程序,它使用java POI读取excel文件。我的问题是每当我运行我的代码时它都会返回错误。

Exception in thread "Thread-13" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/WorkbookFactory
    at digicare.tracking.serial.BulkUpload.UploadProgress$1read2.run(UploadProgress.java:89)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.WorkbookFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

这是我的代码:

try {
            InputStream inp = new FileInputStream(FilePath);
        Workbook wb = WorkbookFactory.create(inp);
        Sheet sheet = wb.getSheetAt(0);
        int maxrows = sheet.getPhysicalNumberOfRows();
        for (int r = 1; r < maxrows; r++) { 
            Thread.sleep(1000);
            lblCurrentRow.setText(String.valueOf(r));
            prbProgBar.setValue(r);                                       
                    txtOutPut.append(String.format("Done!!\n"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

4 个答案:

答案 0 :(得分:1)

之前我遇到过这个,实际上不仅要添加一个jar文件,还有另一个jar文件,名为:poi-ooxml-x.jar(其中x是版本),这个文件包含WorkbookFactory,而不是poi-x.jar,你必须包括它们两个

----------------------------------------------------------------------------

修改 我做了一些研究,我认为你的类路径问题与你的项目是一个java web start应用程序有关:

  

我可以依赖Manifest文件中的Class-Path吗?

     

Java Web Start不支持清单中的Class-Path条目   文件。 Class-Path属性完全以文件为中心,与Java相同   Web Start和JNLP是以Web为中心的,即基于URL。因此,这两个   模型不易合并。

     

您可以列出多个JAR,而不是依赖Class-Path条目   JNLP文件中的文件,例如:

<resources>
     <jar href="A.jar"/> 
     <jar href="B.jar"/>  
</resources>

这是我找到它的链接:http://webstartfaq.com/#52

答案 1 :(得分:0)

看起来无法找到WorkbookFactory。假设您已将Apache POI jar放在构建路径中。你能看到它自己的jar文件中是否有org.apache.poi.ss.usermodel.WorkbookFactory类吗?

答案 2 :(得分:0)

这会对你有帮助,

使用Apache POI库v3.8或更高版本(Download

希望link能帮到你

答案 3 :(得分:0)

你错过了一些POI罐子。具体来说,你肯定错过了poi-ooxml jar,但你可能也会遗漏其他一些......

Apache POI提供a handy page listing components, their jars and their dependencies。正如该页面所解释的那样,如果您想使用常见的org.apache.poi.ss.usermodel类(例如WorkbookFactory),您需要主POI jar,POI-OOXML jar及其各自的依赖项。

如果你添加这两个罐子和their dependencies,和/或切换到maven并根据poipoi-ooxml列出你的项目,那么你将拥有所需的课程