2012-03-21 4 views
12

sto cercando di ottenere i dati della cella dal mio file .csv ma ​​si verifica un errore: jxl.read.biff.BiffException: impossibile riconoscere stream OLEcome risolvere l'errore JXL: jxl.read.biff.BiffException: impossibile riconoscere il flusso OLE

Non capisco come risolvere questo problema, per favore dammi qualche soluzione questo codice è per jxl api & è il supporto di api a .csv?

Codice di riferimento:

public void read() throws IOException, BiffException { 

    File inputWorkbook = new File(inputFile); 

    try 
    { 
     w = Workbook.getWorkbook(inputWorkbook.getAbsoluteFile()); 
     // Get the first sheet 
     Sheet sheet = w.getSheet(0); 
     // Loop over first 10 column and lines 

     for (row = 1; row < sheet.getRows(); row++) 
     { 
      ReadExcelLotSizeEntity readExcelLotSizeEntity =new ReadExcelLotSizeEntity(); 

       cell = sheet.getCell(1,row); 
       type= cell.getType(); 
       if (cell.getType() == CellType.LABEL) 
       { 

        symbol=cell.getContents(); 
        System.out.println(":::::::::::::::::"+symbol); 
        readExcelLotSizeEntity.setSymbol(symbol); 
       } 

       int col=2; 
       cell = sheet.getCell(col,row); 
       while(!cell.getContents().equals("")||cell.getContents()!=null) 
       { 
        System.out.println("||||||||||||||||"+cell.getContents()); 
        cell=sheet.getCell(col,row); 
        col++; 
       } 
       lotSize= new Double(cell.getContents()); 
       readExcelLotSizeEntity.setLotSize(lotSize); 
       readExcelLotSizeEntity.setCreateUserId(1L); 
       readExcelLotSizeEntity.setCreateDtTm(new Date()); 
       readExcelLotSizeHome.persist(readExcelLotSizeEntity); 
      } 

    } catch (BiffException e) { 
     e.printStackTrace(); 
    } 

} 

risposta

1

In realtà si utilizza la versione diversa del file CSV prego salvarlo nella versione esatta.

Per esempio: dovremmo salvare il foglio di Excel in parola come 9

35

Sono stato anche di fronte a questo problema in precedenza. Ho cercato su Google e ho letto questo post e molti altri post che chiedevano una soluzione a questo BiffException. Non ho la soluzione esatta ma, come ho risolto il mio problema, puoi farlo anche tu, forse.

Stavo cercando di leggere i dati dal file Excel salvato in MS Office 2010 e stavo ottenendo questo errore. Ho salvato il file come Excel 2003-7 e poi lo ho letto senza problemi. È possibile che questo problema si verifichi in Office 10 ma non in Office 2003-7.

Spero che funzioni nel tuo caso.

14

Il salvataggio del file come "Excel 97-2003 cartella di lavoro" ha risolto il problema.

-1

salvare il file come Excel 97-2003 e cambiarne anche il formato del file da xlsx a XLX, nel codice (nel nome del file)

5

biblioteca JXL doesnot supporto .csv e .xslx formati, che è il formato utilizzato da Excel-2010. quindi, usa Excel 97-2003 che è .xls foramatted ed è supportato dalla libreria JXL. oppure, se si desidera utilizzare excel-2010, utilizzare APACHE POI (XSSFWorkbooks) anziché JXL. Per l'utilizzo del formato .csv, google per le librerie CSVReader.

0

Stavo cercando di leggere i dati dal file Excel salvato in MS Office 2010 e ho ricevuto questo errore. Ho salvato il file come Excel 2003-7 e poi lo ho letto senza problemi. Può accadere che questo problema si verifichi in Office 10 ma non in Office 2003-7

+0

Questa non è una risposta, è un lavoro "taglia e incolla" della risposta più popolare data 4 anni prima del tuo sforzo! – DaveRlz