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

发布于 2024-11-14 06:11:41 字数 2013 浏览 3 评论 0原文

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

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

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

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:1 在 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) 在 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(来源未知) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 在 java.util.concurrent.FutureTask.run(FutureTask.java:138) 在 org.jdesktop.swingworker.SwingWorker.run(来源未知) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang.Thread.run(Thread.java:662)

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

I'm currently developing a Java app that's supposed to fill a preformatted Excel file.
The file was originally coded using HTML tags, but I converted it to a real XLS file, removing the conditional formatting in the process (because I saw in JXL Yahoo! Group that it makes the thing crash). It then removed the NullPointerException I had in the first place, but gave me another, a StringIndexOutOfBoundsException this time.

I have to explain before showing you my code, that the Excel file I'm supposed to fill is contained in the JAR of my application. I extract it in a temporary file to be able to read it properly. This part of my code works perfectly since I use it in others apps without any issues.

Here's my code : http://pastebin.com/WcL9jZZD
And here's the exception :

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)

Does anyone know how to solve this ? I found a topic in the JXL Yahoo! Group, but they do not give the answer...
Thanks !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

耳根太软 2024-11-21 06:11:41

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

yes.You are probably using Excel 95 or earlier. Convert the file to Excel 97 or wait for their new release!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文