2016-09-23 26 views
21

Próbuję napisać program, który działa z dokumentami Excel, ale format HSSF jest zbyt mały dla moich wymagań. Próbuję przejść do XSSF, ale wciąż dostaję błędy, próbując go użyć.Błąd ładowania Apache XSSFWorkbook class

Udało mi się rozwiązać pierwsze dwa, dodając do mojego programu xmlbeans-2.3.0.jar i dom4j-1.6.jar, ale teraz pojawia się ten błąd, który nie wydaje się być rozwiązany przez dodanie Apache słoik wspólny dostępny na stronie Apache.

Błąd jest następujący:

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 

Odpowiedz

26

Dodaj commons-collections4-x.x.jar plik na swojej drodze budowania i spróbować jeszcze raz. To zadziała.

Można go pobrać z https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.0

+1

Wszystkie zależności Apache POI są również zawarte w pakiecie pobierania binarnego! – Gagravarr

+3

Zobacz odpowiedź Anshu Kumara poniżej. Wersja 4.0 nie wystarczy, aby rozwiązać ten problem, potrzebujesz wersji Apache Collections 4.1. Sprawdziłem. –

+1

Twoja odpowiedź zadziałała jak czar! –

14

Commons collections4-xxjar zdecydowanie rozwiązać ten problem, ale Apache usunęła z interfejsu ListValuedMap Commons Collections4-4.0.jar więc użyć zaktualizowanej wersji 4.1 posiada wymagane klasy i Interfejsy.

Zobacz tutaj, jeśli chcesz przeczytać Excel (2003 lub 2007+) przy użyciu kodu Java.

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

+3

Całkowicie poprawne, musisz pobrać tę wersję. https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.1 –

+3

Pomogło mi to również wiele razy. Właśnie zaktualizowałem POI 3.15 z 3.14 i stwierdziłem, że mój eksport XLSX jest z tego powodu uszkodzony. Zmieniłem wersję z wersji 4.0 na 4.1 i wszystko znów działa dobrze. –

5

Należy pamiętać, że 4.0 nie jest wystarczające, ponieważ ListValuedMap, został wprowadzony w wersji 4.1.

Musisz użyć this maven repository link dla wersji 4.1. Replikowane poniżej dla wygody

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