2016-09-23 4 views
21

Я пытаюсь написать программу, которая работает с документами Excel, но формат HSSF слишком мал для моих требований. Я пытаюсь перейти к XSSF, но при попытке использовать его все чаще получаю ошибки.Apache POI error loading XSSFWorkbook class

Мне удалось решить первые два, добавив xmlbeans-2.3.0.jar и dom4j-1.6.jar в мою программу, но теперь эта ошибка подходит, что, похоже, не устраняется путем добавления Apache доступна на веб-сайте Apache.

Ошибка заключается в следующем:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 
    at hot.memes.ExcelCreator.main(ExcelCreator.java:66) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections4.ListValuedMap 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 1 more 

ответ

26

Добавить Обще-collections4-x.x.jar файл в путь сборки и попробовать еще раз. Он будет работать.

Вы можете скачать его с https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.0

+1

Все зависимости API POI также включены в бинарный пакет загрузки! – Gagravarr

+3

См. Ответ Аншу Кумара ниже. Версия 4.0 недостаточно, вам нужна версия Apache Collections 4.1 для решения этой проблемы. Я проверил. –

+1

Ваш ответ работал как шарм! –

6

Ура! Добавление коллекций jar-файлов в мой проект разрешило эту проблему. Два больших пальца до Лаки Шармы.

Решение: добавьте файл commons-collections4-4.1.jar в свой путь сборки и повторите попытку. Это будет работать.

Вы можете скачать его с https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.1

14

Викисклада collections4-xxjar определенно решить эту проблему, но Apache удалила интерфейс ListValuedMap из Викисклада Collections4-4.0.jar так использовать обновленную версию 4.1 имеет необходимые классы и Интерфейсы.

Обратитесь сюда, если вы хотите прочитать Excel (2003 или 2007+) с помощью java-кода.

http://www.codejava.net/coding/how-to-read-excel-files-in-java-using-apache-poi

+3

Полностью правильно, скачайте эту версию. https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.1 –

+3

Это помогло мне и многим другим. Я только что обновил POI 3.15 от 3.14 и обнаружил, что из-за этого мой экспорт XLSX не работает. Поэтому я изменил версию с 4.0 до 4.1, и все снова работает хорошо. –

5

Пожалуйста, обратите внимание, что 4,0 не является достаточным, так как ListValuedMap, была введена в версии 4.1.

Для версии 4.1 вам необходимо использовать this maven repository link. Реплицированных ниже для удобства

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 --> 
<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-collections4</artifactId> 
    <version>4.1</version> 
</dependency>