我目前正在开发一个应用程序,它应该填充预先格式化的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.getEncodedURL(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)
at jxl.write.biff.File.write(File.java:147)
at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:913)
at qctomantis.tasks.ExcelWriter.doInBackground(ExcelWriter.java:128)
at qctomantis.tasks.ExcelWriter.doInBackground(ExcelWriter.java:46)
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.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
有谁知道如何解决这个问题?我在JXL Yahoo!上找到了topic。小组,但他们没有给出答案...
谢谢 !