Apache POI error loading XSSFWorkbook class

JavaApache PoiXssf

Java Problem Overview


I'm trying to write a program that works with Excel docs, but the HSSF format is too small for my requirements. I'm attempting to move to XSSF, but I keep getting errors when trying to use it.

I managed to solve the first two by adding xmlbeans-2.3.0.jar and dom4j-1.6.jar to my program, but now this error is coming up, which doesn't seem to be resolved by adding the Apache commons jar available on the Apache website.

The error is as follows:

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

Java Solutions


Solution 1 - Java

Add commons-collections4-x.x.jar file in your build path and try it again. It will work.

You can download it from https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.0

Solution 2 - Java

commons-collections4-x.x.jar definitely solve this problem but Apache has removed the Interface ListValuedMap from commons-Collections4-4.0.jar so use updated version 4.1 it has the required classes and Interfaces.

Refer here if you want to read Excel (2003 or 2007+) using java code.

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

Solution 3 - Java

Hurrah! Adding commons-collections jar files to my project resolved this problem. Two thumbs up to Lucky Sharma.

Solution: Add commons-collections4-4.1.jar file in your build path and try it again. It will work.

You can download it from https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.1

Solution 4 - Java

Please note that 4.0 is not sufficient since ListValuedMap, was introduced in version 4.1.

You need to use this maven repository link for version 4.1. Replicated below for convenience

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

Solution 5 - Java

Yeah, resolved the exception by adding commons-collections4-4.1 jar file to the CLASSPATH user varible of system. Downloaded from https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.1

Solution 6 - Java

If you have downloaded pio-3.17 On eclipse: right click on the project folder -> build path -> configure build path -> libraries -> add external jars -> add all the commons jar file from the "lib". It's worked for me.

Solution 7 - Java

you have to add jars in your project class classpath -

  1. poi-3.17.jar
  2. poi-excelant-3.17.jar
  3. poi-ooxml-3.17.jar
  4. common-collections-4.4.jar
  5. xmlbeans-2.3.0.jar
  6. poi-ooxml-scehmas-3.17.jar
  7. common-compress.jar

There is the following example of your code.

package com.sks.xssbook;

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * @author ssuman
 *
 */
public class XssBook1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try{
		XSSFWorkbook workBook = new XSSFWorkbook();
		XSSFSheet shhet = workBook.createSheet("sheet1");
		File f1 = new File("sks.xlsx");
		FileOutputStream fileOop = new FileOutputStream(f1);
		workBook.write(fileOop);
		workBook.close();
		System.out.println("File created !!!!!");
		}
		catch(Exception ex) {
			System.err.println("Error ---- "+ex);
		}

	}

}

Solution 8 - Java

XSSFWorkbook class is only available in poi-ooxml dependency. Please check if you are using poi or poi-ooxml.

implementation 'org.apache.poi:poi:5.0.0' -> HSSFWorkbook

implementation 'org.apache.poi:poi-ooxml:5.0.0' -> XSSFWorkbook

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCameron ZachView Question on Stackoverflow
Solution 1 - JavaLakhwinder SharmaView Answer on Stackoverflow
Solution 2 - JavaAnshu kumarView Answer on Stackoverflow
Solution 3 - JavaBharath NadukatlaView Answer on Stackoverflow
Solution 4 - JavaHopeKingView Answer on Stackoverflow
Solution 5 - JavaSwethaView Answer on Stackoverflow
Solution 6 - JavaMostafizView Answer on Stackoverflow
Solution 7 - JavaSunil Kumar SumanView Answer on Stackoverflow
Solution 8 - JavaMohan MunisifreddyView Answer on Stackoverflow