В настоящее время я разрабатываю приложение 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)
at java.lang.Thread.run (Thread.java:662)
Кто-нибудь знает, как это решить? Я нашел тему в JXL Yahoo! Группа, но они не дают ответа ...
Спасибо!