загрузка файла исключение excel

У меня проблема с загрузкой файла excel, мой код Java ниже

File newFile = new File("C:/sample.xls");
int firstColNo = 0;
int row = 0;
Cell cell;
Workbook wb = Workbook.getWorkbook(newFile);
Sheet sheet = wb.getSheet(0);
    for (row = 1; row < 1005; row++) {
        LabelCell labelCell1 = sheet.findLabelCell("COMPOUND_ID");
            if (labelCell1 != null) {
                firstColNo = labelCell1.getColumn();
                cell = sheet.getCell(firstColNo, row);
                    if (cell.getContents() != null && cell.getContents().length() > 0) {                                            System.out.println(cell.getContents());
                } else {
                                        System.out.println("-");
                                    }
                                }
                            }

Когда я отлаживаю его, я получаю это исключение

jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:221)
    at jxl.Workbook.getWorkbook(Workbook.java:198)
    at hello.FileUploadExample.doPost(FileUploadExample.java:63)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

Я использую файл jxl.jar для загрузки файлов.

Может ли кто-нибудь помочь мне решить эту проблему?


person user2405204    schedule 21.05.2013    source источник
comment
Вероятно, дубликат: stackoverflow.com/questions/5497681/   -  person tostao    schedule 21.05.2013
comment
Кажется, что проблема не в загрузке?   -  person sstn    schedule 21.05.2013
comment
загрузка не проблема, но я отлаживаю эту строку Workbook wb = Workbook.getWorkbook(newFile); я получаю исключение   -  person user2405204    schedule 21.05.2013
comment
-tostao, привет, я видел ссылку, у тебя есть обновленная jxl jar   -  person user2405204    schedule 21.05.2013


Ответы (1)


В трассировке стека это

at jxl.Workbook.getWorkbook(Workbook.java:198)

который вызывается в вашем коде в

Workbook wb = Workbook.getWorkbook(newFile);

Я использовал POI и другую библиотеку excel, а не эту, но кажется, что в этот момент может быть FileNotFoundException, преобразованное в jxl.read.biff.BiffException, или библиотека не распознает формат входного файла. - потому что вы дали простой .txt переименован в .xls

Пожалуйста, сделайте проверку хотя бы на уровне Java

if(!newFile.isFile()){
    return;
}

также вы можете проверить, что длина не равна 0 и так далее.

Возможно, это может быть вашим решением.

Я надеюсь, что это поможет вам найти направление.

person Community    schedule 21.05.2013