Подтвердить что ты не робот

Как решить ошибку JXL: jxl.read.biff.BiffException: невозможно распознать поток OLE

Я пытаюсь получить данные ячеек из моего .csv файла, но он получает ошибку: jxl.read.biff.BiffException: невозможно распознать поток OLE

Я не понимаю, как это решить, пожалуйста, дайте мне некоторое решение этот код для jxl api и является поддержкой api для .csv?

Код для справки:

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

}
4b9b3361

Ответ 1

Я также столкнулся с этой проблемой раньше. Я googled и прочитал этот пост и много других сообщений, которые просили разрешения для этого BiffException. У меня нет точного решения, но поскольку я исправил свою проблему, вы тоже можете это сделать.

Я пытался читать данные из файла Excel, сохраненного в MS Office 2010, и я получал эту ошибку. Я сохранил файл как Excel 2003-7, а затем прочитал его без каких-либо проблем. Возможно, эта проблема возникает в Office 10, но не в Office 2003-7.

Я надеюсь, что это будет работать в вашем случае.

Ответ 2

Сохранение файла как типа "Excel 97-2003 Workbook" решило мою проблему.

Ответ 3

Библиотека JXL не поддерживает форматы .csv и .xslx, которые являются форматом, используемым Excel-2010. следовательно, использовать Excel 97-2003, который .xls foramatted и поддерживается библиотекой JXL. или если вы хотите использовать excel-2010, используйте APACHE POI (XSSFWorkbooks) вместо JXL. Для использования .csv-формата, google для CSVReader-библиотек.

Ответ 4

На самом деле вы используете другую версию csv файла. Пожалуйста, сохраните его в точной версии.

Для примера: мы должны сохранить листок excel в слове как 9

Ответ 5

Я пытался читать данные из файла Excel, сохраненного в MS Office 2010, и я получал эту ошибку. Я сохранил файл как Excel 2003-7, а затем прочитал его без каких-либо проблем. Возможно, эта проблема возникает в Office 10, но не в Office 2003-7

Ответ 6

сохраните файл как Excel 97-2003, а также измените формат файла с xlsx на xlx, в коде (в имени файла)