我正在尝试使用POI库阅读 excel文件。
try {
File file=new File("C:\\new.xls");
FileInputStream fin = new FileInputStream(file);
//Get the workbook instance for XLS file
HSSFWorkbook workbook = new HSSFWorkbook(fin);
//Get first sheet from the workbook
HSSFSheet sheet = workbook.getSheetAt(0);
//Iterate through each rows from first sheet
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext())
{
Row row = rowIterator.next();
//For each row, iterate through each columns
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext())
{
Cell cell = cellIterator.next();
switch(cell.getCellType())
{
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t\t");
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t\t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getRichStringCellValue() + "\t\t");
break;
}
}
System.out.println("");
}
fin.close();
FileOutputStream out =new FileOutputStream(file);
workbook.write(out);
out.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
我在简单的Java项目中编写了上面的代码,它工作得很好。 但每当我尝试在 Servlet 中编写相同的代码时,我都会遇到以下错误。
* *例外
javax.servlet.ServletException:Servlet执行引发异常
根本原因
java.lang.NoClassDefFoundError:org / apache / poi / hssf / usermodel / HSSFWorkbook com.ReadExcel.read(ReadExcel.java:30) com.ServletDemo.doPost(ServletDemo.java:23)` javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)**
请告诉我该怎么做才能消除这些错误。
答案 0 :(得分:0)
该例外仅告诉您它无法在任何地方(在您的类路径中)找到HSSFWorkbook
org / apache / poi jar需要在类路径中 - &gt;加上它。
答案 1 :(得分:0)
将poi jar文件放在WEB-INF / lib文件夹
中答案 2 :(得分:0)
在Eclipse中创建“动态Web项目”。
将源文件放入新项目的“src”文件夹中。
将poi-3.9.jar放入项目中的此文件夹中: 的WebContent / WEB-INF / LIB / POI-3.9.jar
右键单击您的项目,然后选择构建路径 - &gt;配置构建路径... 选择“库”选项卡,然后展开“Web App库”节点。 在这里你必须看到poi-3.9.jar的条目。 如果没有,项目设置有问题。
测试你的servlet。