Преобразование MultiPartFile в XWPFDocument - PullRequest
0 голосов
/ 02 июля 2018

Мне нужно знать, как преобразовать multipartFile в XWPFDocument, чтобы прочитать его как файл слов (файл, который я загрузил, на самом деле является .docx), однако я получаю сообщение об ошибке:

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException

Вот мой код:

@Override
  public void addReport(MultipartFile report) throws ApcException {

    try{

      File convFile = new File(report.getOriginalFilename());
      convFile.createNewFile();
      FileOutputStream fos = new FileOutputStream(convFile);
      fos.write(report.getBytes());
      fos.close();

      FileInputStream fis = new FileInputStream(convFile.getAbsolutePath());

      XWPFDocument docx = new XWPFDocument(fis);

      List<XWPFTable> tables =docx.getTables();

      invokeUpdate(ADD_REPORT,new Object[]{

                                           tables.get(0).getRow(1).getCell(0),
                                           tables.get(1).getRow(0).getCell(0),
                                           tables.get(2).getRow(0).getCell(0),
                                           tables.get(3).getRow(2).getCell(1),
                                           tables.get(4).getRow(1).getCell(1)});

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

}

Вот мои зависимости Apache в моем pom.xml:

Для Apache POI у меня есть эти:

<dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.7</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.17</version>
    </dependency>

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 02 июля 2018

Вам необходимо заменить версию Apache Poi с 3.7 на 3.17.

<dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.17</version>
</dependency>

Последним стабильным выпуском является Apache POI 3.17

...