2012-03-21 7 views
12

tôi đang cố gắng lấy dữ liệu ô từ tệp .csv của tôi nhưng nó bị lỗi: jxl.read.biff.BiffException: Không thể nhận dạng dòng OLEcách giải quyết lỗi JXL: jxl.read.biff.BiffException: Không thể nhận dạng luồng OLE

Tôi không hiểu cách giải quyết vấn đề này, vui lòng cung cấp cho tôi một số giải pháp mã này dành cho jxl api & là hỗ trợ api cho .csv?

Mã để tham khảo:

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(); 
    } 

} 

Trả lời

1

Trên thực tế bạn đang sử dụng phiên bản khác nhau của tập tin csv Xin vui lòng lưu nó trong phiên bản chính xác.

Ví dụ: chúng tôi nên lưu bảng tính excel bằng chữ là 9

35

Tôi cũng đang đối mặt với vấn đề này trước đó. Tôi googled và đọc bài đăng này và nhiều bài viết khác đã được yêu cầu giải pháp này BiffException. Tôi không có giải pháp chính xác nhưng khi tôi khắc phục vấn đề của tôi, bạn cũng có thể làm điều đó.

Tôi đang cố gắng đọc dữ liệu từ tệp Excel được lưu trong MS Office 2010 và tôi đã gặp phải lỗi này. Tôi đã lưu tệp dưới dạng Excel 2003-7 và sau đó đọc tệp mà không gặp bất kỳ sự cố nào. Có thể trường hợp xảy ra sự cố này trong Văn phòng 10 nhưng không phải trong Office 2003-7.

Tôi hy vọng điều này sẽ hoạt động trong trường hợp của bạn.

14

Lưu tệp dưới dạng "Excel 97-2003 Workbook" loại đã giải quyết được sự cố của tôi.

-1

lưu nội dung tập tin Excel 97-2003 và cũng thay đổi định dạng tập tin từ xlsx để xLx, trong đoạn code (trong tên tập tin)

5

thư viện JXL doesnot hỗ trợ .csv.xslx định dạng, đó là dạng được sử dụng bởi Excel-2010. do đó, sử dụng Excel 97-2003 là .xls được định dạng sẵn và được thư viện JXL hỗ trợ. hoặc nếu bạn muốn sử dụng excel-2010, hãy sử dụng APACHE POI (XSSFWorkbooks) thay vì JXL. Để sử dụng định dạng .csv, google cho thư viện CSVReader.

0

Tôi đã cố gắng đọc dữ liệu từ tệp Excel được lưu trong MS Office 2010 và tôi đã gặp phải lỗi này. Tôi đã lưu tệp dưới dạng Excel 2003-7 và sau đó đọc tệp mà không gặp bất kỳ sự cố nào. Nó có thể là trường hợp vấn đề này xảy ra trong Office 10 nhưng không phải trong Office 2003-7

+0

Đây không phải là câu trả lời, đó là công việc cắt và dán của câu trả lời phổ biến nhất được 4 năm trước nỗ lực của bạn! – DaveRlz