使用Applet和Apache POI打开Excel文件

我有这个代码

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”连同一个子目录“lib”与“poi-3.9-2021203.jar”

这是从代码“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”中读取一个数字。 提前致谢!

关键是:

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

您缺less运行时类path中的Apache POI jar包。 您应该修复它,以便您的应用程序正确加载它,或者生成一个包含代码和所有依赖关系的jar文件。 无论哪种方式,如果您想使用它,您需要在运行时提供POI!

如果认为服务器端的MIMEtypes对于.jar文件不正确。

如果我查看从POI网站下载的poi-3.9-20121203.jar,我有1,869,113字节。 你的日志说1.821.732字节。

另一种可能性是,你用Java 7重新编译了这个库,而这个Applet和Java 6一起运行。

这里是你的.htaccess

AddType应用程序/ java-archive .jar

我从上面得到的是 – 你正在尝试在applet使用第三方jar,即从excel读取。 要使小程序使用第三方jar,请使用jarsigner对其进行签名。

签署你的第三方jar把他们放在classpath ,它应该工作。