vijayk vijayk -4 years ago 129
Java Question

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

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.

Answer Source

add xmlbeans-2.3.0.jar file to your classpath.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download