我目前正在开发一个应该填充预先格式化的 Excel 文件的 Java 应用程序。该文件最初是使用 HTML 标记编码的,但我将其转换为真正的 XLS 文件,在此过程中删除了条件格式(因为我在JXL Yahoo! Group中看到它使事情崩溃)。然后它删除了NullPointerException
我最初拥有的,但StringIndexOutOfBoundsException
这次给了我另一个。
在向您展示我的代码之前,我必须解释一下,我应该填写的 Excel 文件包含在我的应用程序的 JAR 中。我将它提取到一个临时文件中以便能够正确读取它。我的这部分代码运行良好,因为我在其他应用程序中使用它没有任何问题。
这是我的代码:http ://pastebin.com/WcL9jZZD 这是例外:
java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:jxl.biff.EncodedURLHelper.getFile(EncodedURLHelper.java:60) 处 jxl.biff.EncodedURLHelper 处的 java.lang.String.charAt(String.java:686) 处的 1。 getEncodedURL(EncodedURLHelper.java:51) 在 jxl.write.biff.SupbookRecord.initExternal(SupbookRecord.java:203) 在 jxl.write.biff.SupbookRecord.getData(SupbookRecord.java:254) 在 jxl.biff.WritableRecordData.getBytes (WritableRecordData.java:71) 在 jxl.write.biff.File.write(File.java:147) 在 jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:913) 在 qctomantis.tasks.ExcelWriter.doInBackground( ExcelWriter.java:128) 在 qctomantis.tasks.ExcelWriter.doInBackground(ExcelWriter.java:46) 在 org.jdesktop.swingworker.SwingWorker $1。在 org.jdesktop.swingworker.SwingWorker 的 java.util.concurrent.FutureTask.run(FutureTask.java:138) 的 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 调用(未知来源)。在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang.Thread 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 运行(未知来源)。运行(线程.java:662)ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang.Thread.run(Thread.java:662)ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang.Thread.run(Thread.java:662)
有谁知道如何解决这个问题?我在 JXL Yahoo! 中找到了一个主题 组,但他们没有给出答案......谢谢!