songjunnan
OPTR丶
采纳率80%
2017-07-10 05:38 阅读 3.6k

java poi读取excel Workbook类错误

5

具体问题是报错显示workbook类找不到,但是类已经导入到工程中。烦请大神帮忙看看解决。感谢!

报错信息

 严重: Servlet.service() for servlet [com.oabkdao.servlet.IndexServlet] in context with path [/oabkdao] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook

Servlet调用XlsMain类

 XlsMain XlsMain = new XlsMain();
 XlsMain.main(null);

XlsMain类

 package com.oabkdao.io;

import java.io.FileInputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.util.Iterator;  
import org.apache.poi.hssf.usermodel.HSSFCell;  
import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
import org.apache.poi.ss.usermodel.Cell;  
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 XlsMain {
    public static void main(String[] args) {  
        readXml("C:\\Users\\SJN\\Desktop\\国内改.xlsx");  
        System.out.println("-------------");  
        readXml("C:\\Users\\SJN\\Desktop\\国内改.xlsx");  
    }  
    public static void readXml(String fileName){  
        boolean isE2007 = false;    //判断是否是excel2007格式  
        if(fileName.endsWith("xlsx"))  
            {isE2007 = true;}  
        try {  
            InputStream input = new FileInputStream(fileName);  //建立输入流  
            Workbook wb  = null;  
            //根据文件格式(2003或者2007)来初始化  
            if(isE2007)  
            { wb = new XSSFWorkbook(input); } 
            else  
            { wb = new HSSFWorkbook(input);}
            Sheet sheet = wb.getSheetAt(0);     //获得第一个表单  
            Iterator<Row> rows = sheet.rowIterator(); //获得第一个表单的迭代器  
            while (rows.hasNext()) {  
                Row row = rows.next();  //获得行数据  
                System.out.println("Row #" + row.getRowNum());  //获得行号从0开始  
                Iterator<Cell> cells = row.cellIterator();    //获得第一行的迭代器  
                while (cells.hasNext()) {  
                    Cell cell = cells.next();  
                    System.out.println("Cell #" + cell.getColumnIndex());  
                    switch (cell.getCellType()) {   //根据cell中的类型来输出数据  
                    case HSSFCell.CELL_TYPE_NUMERIC:  
                        System.out.println(cell.getNumericCellValue());  
                        break;  
                    case HSSFCell.CELL_TYPE_STRING:  
                        System.out.println(cell.getStringCellValue());  
                        break;  
                    case HSSFCell.CELL_TYPE_BOOLEAN:  
                        System.out.println(cell.getBooleanCellValue());  
                        break;  
                    case HSSFCell.CELL_TYPE_FORMULA:  
                        System.out.println(cell.getCellFormula());  
                        break;  
                    default:  
                        System.out.println("unsuported sell type");  
                    break;  
                    }  
                }  
            }  
        } catch (IOException ex) {  
            ex.printStackTrace();  
        }  
    }  
}  




  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • ljheee ljheee 2017-07-10 11:03

    Servlet.service() for servlet

    web工程,需要把jar放到lib下

    点赞 1 评论 复制链接分享
  • sinat_38913556 sinat_38913556 2017-07-10 05:44

    jar是否放到工程WEB-INF下的lib

    点赞 评论 复制链接分享
  • cghsir cghsir 2017-07-10 05:46

    jar包是否发布到classpath下。

    点赞 评论 复制链接分享
  • songjunnan OPTR丶 2017-07-10 05:56

    jar包已经放到WEB-INF的lib 下 也导入classpath 。 报错情况依旧,同时之前尝试用jxl方法,也是报workbook找不到的错。

    点赞 评论 复制链接分享
  • qq_23231303 RobinApp 2017-07-10 06:10

    XlsMain类里不是有main方法啊 直接在这里测试,我测试的没有什么错,

    点赞 评论 复制链接分享
  • qq_23231303 RobinApp 2017-07-10 06:13

    org.apache.poi.ss.usermodel.Workbook看你报的异常是缺少这个包,看看这个包是否存在,或者看看是不是包冲突了图片说明

    点赞 评论 复制链接分享
  • sinat_38913556 sinat_38913556 2017-07-10 06:22

    ctrl shift t
    输入 org.apache.poi.ss.usermodel.Workbook
    看看能找到几个
    应该是jar冲突了

    点赞 评论 复制链接分享
  • qq_35982570 penrir_ 2017-07-10 08:10

    jar包用的是poi的,不是poi-ooxml,估计你下载错jar包

    点赞 评论 复制链接分享

相关推荐