How to read excel (.xlsx) in java using poi?

I am trying to read excel in java.I have the following code.

import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class Test { public static void main(String[] args) throws IOException { String fname = "D:\\Test.xlsx"; // or "C:\\Test.xls" C:\\SDI-XL.xls InputStream inp = new FileInputStream(fname); Workbook wb = new XSSFWorkbook(inp); // Declare XSSF WorkBook Sheet sheet = wb.getSheetAt(0); // sheet can be used as common for XSSF and HSSF Iterator<Row> rows=sheet.rowIterator(); while (rows.hasNext()) { Row row = (Row) rows.next(); System.out.println("row#=" + row.getRowNum() + ""); Iterator cells = row.cellIterator(); while (cells.hasNext()) { Cell cell = (Cell) cells.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: System.out.println(cell.getRichStringCellValue().getString()); break; case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { System.out.println(cell.getDateCellValue() + ""); } else { System.out.println(cell.getNumericCellValue()); } break; case Cell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue() + ""); break; case Cell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; default: } } } inp.close(); } } 

I imported poi.3.6jar and poi.ooxml-3.6 jar. When I run this program, I received the following error message.

 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException at Test.main(Test.java:16) Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 1 more 

I do not understand why this error message appeared. So plz help me.

+6
source share
4 answers

add xmlbeans-2.3.0.jar file to your classpath.

+11
source

Add the following jar files:

  • poi-3.9.jar
  • poi-ooxml-3.9.jar
  • poi-ooxml-schemas-3.7.jar
  • xmlbeans-2.3.0.jar
  • dom4j-1.6.1.jar
+11
source

Add

 xmlbeans-2.3.0.jar dom4j-1.6.1.jar 

along with regular XML POIs, this will certainly solve the problem.

+1
source

Add the following jars and add them to your classpath, then run the project.

  • dom4j-1.6.1-sources.jar
  • dom4j.jar
  • log4j-1.2.17.jar
  • poi-3,5-FINAL.jar
  • poi-ooxml-3,5-beta5.jar
  • poi-ooxml-schema-3.9.jar
  • XMLBeans-2.3.0.jar
-1
source

Source: https://habr.com/ru/post/944203/


All Articles