zoukankan      html  css  js  c++  java
  • 使用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();//错误

      代码后补

      

  • 相关阅读:
    ubuntu android jdk问题
    android adb ubuntu问题
    常用命令
    svn info
    TaskRecord分析
    moveTasktoBack 把当前任务放入后台
    WatchDog机制
    双系统安装
    制作安装U盘
    android 小游戏 ---- 数独(二)
  • 原文地址:https://www.cnblogs.com/javasl/p/13834867.html
Copyright © 2011-2022 走看看