Как прочитать файл Excel с расширением * .xlsx? - PullRequest
1 голос
/ 17 июня 2011

Я читаю файл Excel * (строка 2000000 с 6 столбцами) * с расширением xlsx.для чтения с использованием Java Excel API, но он выдает исключение

jxl.read.biff.BiffException: Unable to recognize OLE stream

, когда пробует тот же файл с расширением xls, он читает отлично, но читает только 65536 Строковые данные только оставшаяся часть строки непрочитанными. Пожалуйста, помогите мне, как яспособен прочитать оставшуюся строку с расширением xlsx.

Спасибо

Ответы [ 4 ]

5 голосов
/ 17 июня 2011

попробуйте использовать Apache POI http://poi.apache.org/spreadsheet/index.html

1 голос
/ 01 сентября 2015

Для чтения файла xlsx мы используем следующие jar

1.dom4j-1.6.1.jar 2.org-Apache-Обще-codec.jar 3.poi-3.7.jar 4.poi-OOXML-3,5-FINAL.jar 5.poi-OOXML-схема-3.11-beta2.jar 6.stax-апи-1.0.1.jar 7.xmlbeans-2.6.0.jar

Это функция, с помощью которой вы можете прочитать файл xlsx.

public static void readXLSX(String path) {
    File file = new File(path);
    String value = "";
    XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(path));
    XSSFSheet sheet = wb.getSheetAt(0);

    Row row;
    Cell cell;

    Iterator<Row> rowIterator = sheet.iterator();

    while (rowIterator.hasNext()) {
        row = rowIterator.next();
        Iterator<Cell> cellIterator = row.cellIterator();
        while (cellIterator.hasNext()) {
                    cell = cellIterator.next();
                    switch (cell.getCellType()) {
                        case Cell.CELL_TYPE_BOOLEAN:
                            value = "" + cell.getBooleanCellValue();
                            break;
                        case Cell.CELL_TYPE_NUMERIC:
                            value = "" + cell.getNumericCellValue();
                            break;
                        case Cell.CELL_TYPE_STRING:
                            value = "" + cell.getStringCellValue();
                            break;
                        case Cell.CELL_TYPE_BLANK:
                            value = " ";
                            break;
                        default:
                            break;
                    }
                    System.out.println("Value: "+value);
    }

}
0 голосов
/ 17 июня 2011

Проблема в том, что в Office '07 Microsoft изменила формат своего документа на что-то, что является более или менее zip-файлом, который содержит большое количество XML. Java Excel API опирается на старый формат файла. Чтобы прочитать что-то из Office '07, используйте Apache POI .

0 голосов
/ 17 июня 2011
  1. Не читайте форматы Microsoft.Если вы хотите, чтобы документ Excel читал CSV, разделенный запятыми список.
  2. Кажется, ваша библиотека не поддерживает xlsx
  3. Взгляните сюда Выбор java api excel
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...