Как InputStream преобразовать в книгу apache.poi? - PullRequest
0 голосов
/ 16 января 2019

Мне нужно конвертировать файл Excel в Workbook (apache poi). Я получаю InputStream:

InputStream in = getInputStream(); // from user file.xls
if(in != null){
    HSSFWorkbook hssfWorkbook = new  HSSFWorkbook(in); //exception
}

но затем я получаю исключение:

org.apache.poi.poifs.filesystem.NotOLE2FileException: неверный заголовок подпись; прочитайте 0x0005060000100809, ожидаемый 0xE11AB1A1E011CFD0 - Ваш файл не является действительным документом OLE2

InputStream, который я получаю из файла, был построен Apachi Poi

И вопрос NotOLE2FileException: неверная подпись заголовка; читать 0x0000000000000000, ожидаемый 0xE11AB1A1E011CFD0 у меня не работает

Я использую Vaadin Framework.

MultiFileMemoryBuffer buffer = new MultiFileMemoryBuffer();

Upload upload = new Upload(buffer);
upload.setAcceptedFileTypes("application/vnd.ms-excel");
upload.setMaxFiles(1);
upload.setSizeFull();
upload.addSucceededListener((event) -> {

        name = event.getFileName();

        try (InputStream inputStream = buffer.getInputStream(name) // getInputStream
             ) {
                Workbook workbook = WorkbookFactory.create(inputStream);

            } catch (IOException e) {
                e.printStackTrace();
            }
        });
}
...