Как решить ошибку 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();
}
}
Ответы
Ответ 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, в коде (в имени файла)