• 使用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();//错误

      代码后补

      

  • 相关阅读:
    工具类
    开发中用到的工具
    项目中另外添加有用的文件:404
    如何组织项目结构:约定优于配置
    媒体查询
    响应式网站开发需要掌握的技术及国内外主流浏览器
    响应式网站概念
    sql存储过程,raisError后要return错误代码,过程最后要return 0
    delphi用TAdoStoredProc调用存储过程,兼容sql2005、2008、2014的远程事务问题
    网页视频下载牛逼工具,支持各种格式转换,比如腾讯视频格式qlv转mp4
  • 原文地址:https://www.cnblogs.com/javasl/p/13834867.html
Copyright © 2020-2023  润新知