качване на файл 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
s качването не е проблемът, но ние отстраняваме грешки в този ред Workbook wb = Workbook.getWorkbook(newFile); получавам изключение   -  person user2405204    schedule 21.05.2013
comment
-tostao, здравей, видях връзката, имаш ли актуализирания jxl jar   -  person user2405204    schedule 21.05.2013


Отговори (1)


В stacktrace това е

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