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

时间:2011-06-07 09:48:27

标签: java excel jxl

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

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

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

  

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:1           at java.lang.String.charAt(String.java:686)           在jxl.biff.EncodedURLHelper.getFile(EncodedURLHelper.java:60)           在jxl.biff.EncodedURLHelper.getEncodedURL(EncodedURLHelper.java:51)           在jxl.write.biff.SupbookRecord.initExternal(SupbookRecord.java:203)           在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)           在qctomantis.tasks.ExcelWriter.doInBackground(ExcelWriter.java:128)           在qctomantis.tasks.ExcelWriter.doInBackground(ExcelWriter.java:46)           在org.jdesktop.swingworker.SwingWorker $ 1.call(未知来源)           at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)           在java.util.concurrent.FutureTask.run(FutureTask.java:138)           在org.jdesktop.swingworker.SwingWorker.run(未知来源)           at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)           at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)           在java.lang.Thread.run(Thread.java:662)

有谁知道如何解决这个问题?我在JXL Yahoo!中找到了topic小组,但他们没有给出答案...... 谢谢!

1 个答案:

答案 0 :(得分:0)

是的。您可能正在使用Excel 95或更早版本。将文件转换为Excel 97或等待他们的新版本!