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

      代码后补

      

  • 相关阅读:
    k8s service的DNS名称解析之CoreDNS
    k8s service负载均衡实现之iptables
    k8s 将项目暴露到互联网访问
    k8s 日志按体现分类与采集思路
    k8s ingressd的http对外暴露网站
    k8s 容器交付流程和项目部署流程
    k8s ingress使用DaemonSet部署
    Google Base与科学家数据共享 (Nature Vol 438|24 November 2005)
    总结:rdf:ID和rdf:about的区别(转载)
    一个元搜索引擎
  • 原文地址:https://www.cnblogs.com/javasl/p/13834867.html
Copyright © 2011-2022 走看看