使用Java和JXL API编辑Excel电子表格

我目前正在开发一个Java应用程序,应该填充预先格式化的Excel文件。 该文件最初是使用HTML标记编码的,但我将其转换为真正的XLS文件,删除了过程中的条件格式(因为我在JXL Yahoo! Group中看到它使事情崩溃)。 然后它删除了我在第一个位置的NullPointerException ,但这次给了我一个StringIndexOutOfBoundsException

在向您展示我的代码之前,我必须先解释一下,我应该填充的Excel文件包含在我的应用程序的JAR中。 我将它解压缩到一个临时文件中,以便能够正确读取它。 我的代码的这部分工作完美,因为我在其他应用程序中使用它没有任何问题。

这里是我的代码: http : //pastebin.com/WcL9jZZD这里是例外:

java.lang.StringIndexOutOfBoundsException:String index out of range:1 at java.lang.String.charAt(String.java:686)at jxl.biff.EncodedURLHelper.getFile(EncodedURLHelper.java:60)at jxl.biff.EncodedURLHelper。 getIncodedURL(EncodedURLHelper.java:51)at jxl.write.biff.SupbookRecord.initExternal(SupbookRecord.java:203)at jxl.write.biff.SupbookRecord.getData(SupbookRecord.java:254)at jxl.biff.WritableRecordData.getBytes (WritableRecordData.java:71)在jxl.write.biff.File.write(File.java:147)在jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:913)at qctomantis.tasks.ExcelWriter.doInBackground( ExcelWriter.java:128)at org.jdesktop.swingworker.SwingWorker $ 1.call(Unknown Source)at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask .java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at org.jdesktop.swingworker.SwingWorker.run(Unknown Source)at java.util.concurrent.ThreadPoolExecuto 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:886)

有谁知道如何解决这个问题? 我在JXL Yahoo!上find了一个主题 。 集团,但他们不给答案…谢谢!

yes.You可能使用Excel 95或更早版本。 将文件转换为Excel 97或等待他们的新版本!