2

私は現在、フォーマット済みの Excel ファイルを埋める Java アプリを開発しています。このファイルはもともと HTML タグを使用してコーディングされていましたが、実際の XLS ファイルに変換し、その過程で条件付き書式を削除しました ( JXL Yahoo! Groupでクラッシュすることを見たからです)。NullPointerException次に、最初に持っていた を削除しましたが、今回は別の a を与えましStringIndexOutOfBoundsExceptionた。

私のコードをお見せする前に説明しなければならないのは、私が埋めるべき Excel ファイルが私のアプリケーションの JAR に含まれているということです。正しく読み取れるように、一時ファイルに抽出します。コードのこの部分は、他のアプリで問題なく使用しているため、完全に機能します。

ここに私のコードがあります: http://pastebin.com/WcL9jZZD そしてここに例外があります:

java.lang.StringIndexOutOfBoundsException: 範囲外の文字列インデックス: jxl.biff.EncodedURLHelper.getFile(EncodedURLHelper.java:60) の java.lang.String.charAt(String.java:686) で jxl.biff.EncodedURLHelper で 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( org.jdesktop.swingworker.SwingWorker$1 の qctomantis.tasks.ExcelWriter.doInBackground(ExcelWriter.java:46) の ExcelWriter.java:128)。java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) で (不明なソース) を呼び出します。 java.lang.Thread で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) で java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) で (不明なソース) を実行します。実行 (Thread.java:662)java.lang.Thread.run(Thread.java:662) の ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)java.lang.Thread.run(Thread.java:662) の ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

誰もこれを解決する方法を知っていますか? JXL Yahoo! でトピックを見つけました。グループですが、彼らは答えを出していません...ありがとう!

4

1 に答える 1

0

はい。おそらく Excel 95 以前を使用しています。ファイルを Excel 97 に変換するか、新しいリリースを待ちます。

于 2012-11-17T14:21:56.727 に答える