我必须在ReadExcel2.main(ReadExcel2.java:38)".中读取xls文件。我使用poi-3.6来读取Eclipse.But中的xls文件,我收到了这个错误:“Exception in thread "main”java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException at java.I
我添加了如下jar 1)poi-3.6-20091214.jar 2)poi-contrib-3.6-20091214.jar 3)poi-examples-3.6-20091214.jar 4)poi-ooxml-3.6-20091214.jar 5)poi-ooxml-schemas-3.6-20091214.jar 6)poi-scratchpad 3.6-20091214.jar
下面是我使用的代码:
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class ReadExcel {
public static void main(String[] args) throws Exception {
//
// An excel file name. You can create a file name with a full path
// information.
//
String filename = "C:\\myExcel.xl";
//
// Create an ArrayList to store the data read from excel sheet.
//
List sheetData = new ArrayList();
FileInputStream fis = null;
try {
//
// Create a FileInputStream that will be use to read the excel file.
//
fis = new FileInputStream(filename);
//
// Create an excel workbook from the file system.
//
// HSSFWorkbook workbook = new HSSFWorkbook(fis);
Workbook workbook = new XSSFWorkbook(fis);
//
// Get the first sheet on the workbook.
//
Sheet sheet = workbook.getSheetAt(0);
//
// When we have a sheet object in hand we can iterator on each
// sheet's rows and on each row's cells. We store the data read
// on an ArrayList so that we can printed the content of the excel
// to the console.
//
Iterator rows = sheet.rowIterator();
while (rows.hasNext()) {
Row row = (XSSFRow) rows.next();
Iterator cells = row.cellIterator();
List data = new ArrayList();
while (cells.hasNext()) {
Cell cell = (XSSFCell) cells.next();
data.add(cell);
}
sheetData.add(data);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
fis.close();
}
}
showExelData(sheetData);
}
private static void showExelData(List sheetData) {
//
// Iterates the data and print it out to the console.
//
for (int i = 0; i < sheetData.size(); i++) {
List list = (List) sheetData.get(i);
for (int j = 0; j < list.size(); j++) {
Cell cell = (XSSFCell) list.get(j);
System.out.print(cell.getRichStringCellValue().getString());
if (j < list.size() - 1) {
System.out.print(", ");
}
}
System.out.println("");
}
}
}
请帮帮忙。感谢期待,致以问候,Dheeraj!
发布于 2010-04-20 15:17:43
您的类路径上需要xmlbeans。
NoClassDefFoundError
的意思是:
编译当前执行的类时,搜索到的类定义已经存在,但再也找不到该定义。
所以下一次你遇到这样的异常,就意味着某个第三方库需要另一个第三方库。然后使用google (或任何其他方法)找出这是哪个库。此外,大多数库在文档和/或发行版中都清楚地说明了它们的依赖关系。
发布于 2010-04-20 15:14:12
JarFinder建议使用XMLBeans.jar
发布于 2017-04-20 15:06:55
在Apache POI 3.16上也有相同的错误。从Apache POI /ooxml-lib/xmlbeans-2.6.0中添加了以下jars,并针对下一个要修复的关于集合/lib/commons-collection tions4-4.1.jar的异常。
https://stackoverflow.com/questions/2673237
复制相似问题