How to read excel(.xlsx) in java using poi?
apache-poi, java
Solution
add `xmlbeans-2.3.0.jar` file to your classpath.
Problem
I am trying to read excel in java.I have 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 was import the poi.3.6jar and poi.ooxml-3.6 jar. When i am run this program i got 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 dont get it why this error message come.So plz help me.