使用POI导入Excel文件

  这是一个经常用到的功能,记录一下,以后直接复制粘贴就行了。简单说一下注意的地方,后面直接上代码。

  理论及要点:

  1、根据InputStream创建Workbook

Workbook wb = new HSSFWorkbook(is);//is是InputStream。2003版本
Workbook wb = new XSSFWorkbook(is);//is是InputStream。2007版本

  2、根据Workbook创建Sheet

Sheet sheet = wb.getSheetAt(0);

  3、根据Sheet创建Row

for(int rowNum=1;rowNum<=sheet.getLastRowNum();rowNum++) {
    Row row = sheet.getRow(rowNum); 
    ... ... 
}

  4、根据Row创建Cell

for(int rowNum=1;rowNum<=sheet.getLastRowNum();rowNum++) {
    Row row = sheet.getRow(rowNum); 
    for(int cellNum=0;cellNum<row.getLastCellNum();cellNum++) {
        Cell cell = row.getCell(cellNum);
        ... ...
    }
}    

  5、读取Cell中的内容

  5.1)根据Cell的格式判断用哪种方式读,共5中方式,0数值(包含数值和日期)、1字符串、2公式、3空白、4布尔、5错误

int cellType = cell.getCellType();

  5.2)在数值类型中需判断是否日期类型,如果是日期类型需要转化,如果是数值类型,去掉默认的“.0”和科学计数法的“,”

if (HSSFDateUtil.isCellDateFormatted(cell)) { //日期
    Date date= cell.getDateCellValue();
}else { //数值
    double dvalue = cell.getNumericCellValue();
    NumberFormat numberFormat  = NumberFormat.getInstance(); //去除默认的“.0” 
    String svalue = numberFormat.format(dvalue);
    if(value.indexOf(",") > -1) { //去除科学计数法的“,”
        svalue = value.replaceAll(",","");
  } }

  5.3)各种类型获取内容方法如下

cell.getDateCellValue();//日期
cell.getNumericCellValue();//数值
cell.getStringCellValue()//字符串
cell.getBooleanCellValue();//布尔
cell.getCellFormula();//公式
cell.getErrorCellValue();//错误

  代码后补

  

posted @ 2021-04-18 08:22  雷雨客  阅读(717)  评论(0)    收藏  举报