使用Applet和Apache POI打开Excel文件

时间:2012-12-11 12:53:22

标签: java excel applet apache-poi

我有这段代码

try {
  url       = new URL("http://miprueba.co.nf/prueba.xls");
  input     = url.openStream();
  bookModel = new HSSFWorkbook(input);
} catch {
  ...
}

在服务器的miprueba.co.nf文件夹中,我有“myapplet.jar”和“prueba.xls”以及带有“poi-3.9-2021203.jar”的子目录“lib”

这是我在代码“bookModel = new ...”中从控制台获得的消息

network: cache not found [URL: http://miprueba.co.nf/lib/poi-3.9-20121203.jar, versión: null]

network: Connectin http//miprueba.co.nf/lib/poi-3.9-20121203.jar con proxy=DIRECT

network: CleanupThread used 5 us

network: Downloading resource: http//miprueba.co.nf/lib/poi-3.9-20121203.jar
 Content-Lenght: 1.821.732
 Content-Encoding: null

network: Cache not found [URL: http//miprueba.co.nf/, versión: null]

network: Cache not found [URL: http//miprueba.co.nf/org/apache/poi/hssf/usermodel/HSSFWorkbook.class, versión: null]

network: Connecting http//miprueba.co.nf/org/apache/poi/hssf/usermodel/HSSFWorkbook.class con proxy=DIRECT
network: CleanupThread used 5 us

Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook
 at applettest.Variables.<init>(Variables.java:50)
 at applettest.myApplet.jButton2ActionPerformed(myApplet.java:124)
....
....
....

有任何帮助吗? 我希望能够从excel文件“prueba.xls”中读取一个数字。 提前致谢!

3 个答案:

答案 0 :(得分:0)

关键是:

Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook

您缺少运行时类路径中的Apache POI jar。您应该修复它以便应用程序正确加载它,或者生成包含代码和所有依赖项的单个jar。无论哪种方式,如果要使用POI,都需要在运行时使用POI!

答案 1 :(得分:0)

如果认为服务器端的MIME类型对.jar文件不正确。

如果我查看从POI网站下载的poi-3.9-20121203.jar,我有1,869,113字节。您记录的是1.821.732字节。

另一种可能性是您使用Java 7重新编译了库,而Applet使用Java 6运行。

这是您的 .htaccess

  

AddType application / java-archive .jar

答案 2 :(得分:0)

我从上面得到的是 - 您正试图在applet中使用第三方jar,即从excel读取。要使applet使用第三方jar,请使用jarsigner对其进行签名。

签署你的第三方jar将它们放入classpath,它应该可以正常工作。