Как читать Excel, используя Jexcel? - PullRequest
1 голос
/ 05 августа 2010

я пытаюсь прочитать файл Excel, используя код Java Однако я получаю следующую ошибку:

jxl.read.biff.BiffException: невозможно распознать поток OLE

когда я искал в сети, я обнаружил, что jExcel поддерживает только до Excel 2003, и эта ошибка возникает, когда Excel сделан в 2007 году, но я сохранил свой Excel только в формате 97-2003, и я все еще получаю эту проблему

Ответы [ 3 ]

9 голосов
/ 05 августа 2010

JExcel API не поддерживает Excel 2007, вы можете использовать Apache POI HSSF / XSSF

вот пример кода для чтения и перезаписи книг с сайта

InputStream inp = new FileInputStream("workbook.xls");
//InputStream inp = new FileInputStream("workbook.xlsx");

Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(2);
Cell cell = row.getCell(3);
if (cell == null)
    cell = row.createCell(3);
cell.setCellType(Cell.CELL_TYPE_STRING);
cell.setCellValue("a test");

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
0 голосов
/ 05 августа 2010

Я давно использую JExcel, но никогда не сталкивался с подобными проблемами.Я думаю, что ваш файл не в формате XLS.Вы пытаетесь создать новый файл Excel и пытаетесь прочитать его.

0 голосов
/ 05 августа 2010

У меня нет опыта работы с JExcel, но я верю, что вы правы, считая, что проблема в одном из форматов файлов. Я предлагаю вам попробовать проект Apache POI . Я широко использую его для чтения и написания электронных таблиц Excel. Он будет читать любую электронную таблицу, созданную в Excel 5.0 и более поздних версиях IIRC, и поддерживает типы файлов .xsl и .xslx.

...