zoukankan      html  css  js  c++  java
  • java如何导入Excel文件

    Java使用POI导入Excel文件,操作起来比较简单,支持xlsx格式。

    下载POI资源包

    从官网https://poi.apache.org/下载POI,笔者选择的是版本是3.17,下载后文件名是poi-bin-3.17.zip。起初担心版本太新,和现有项目不兼容,后来程序跑起来没发现什么问题。

    将poi-3.17下的jar包和poi-3.17lib*.jar包都复制到项目的WEB-INFlib下,并在项目配置编译路径。

    在Java文件中添加以下引用,其中hssf用于xls格式,xssf用于xlsx格式。

    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.DataFormatter;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    

     读取Excel文件

    HSSFWorkbook workbook = null;
    try {
        // 读取Excel文件
        InputStream inputStream = new FileInputStream('c:	est.xlsx');
        workbook = new HSSFWorkbook(inputStream);
        inputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

    遍历Excel Sheet表

    // 遍历Excel Sheet
    for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
        workbook.getSheetAt(numSheet);
    }

    遍历行

    HSSFSheet sheet = workbook.getSheetAt(0);
    if (sheet != null) {
        // 循环行
        for     (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
            HSSFRow row = sheet.getRow(rowNum);
            if (row == null) {
                continue;// 忽略并继续读取
            }
            HSSFCell cell = row.getCell(0);
          if (cell == null) {
                continue;
            }
          //System.out.println('cell.getStringCellValue0():' + cell.getStringCellValue());
            cell = row.getCell(1);
           if (cell == null) {
                continue;
           }
            //System.out.println('cell.getStringCellValue1():' + cell.getStringCellValue());
       }
    }

    POI遇到问题Cannot get a text value from a numeric cell “Poi”

    导入Excel文件时,如果某列是数值类型,直接通过cell.getStringCellValue()会报Cannot get a text value from a numeric cell “Poi”错误。

    解决办法

    DataFormatter formatter = new DataFormatter();
    String val = formatter.formatCellValue(sheet.getRow(col).getCell(row));
  • 相关阅读:
    sql 存储过程 in 的两种写法
    C# 开发Chrome内核浏览器(WebKit.net)
    IE6、IE7、IE8、Firefox兼容性
    360浏览器兼容模式 不能$.post (不是a 连接 onclick的问题!!)
    jquery树形表格实现方法
    C#递归累计到父行
    树形结构 DropDownList
    ASP.NET 防止重复提交提示层
    JavaScriptSerializer 时间格式化
    去标签获取网页内容
  • 原文地址:https://www.cnblogs.com/liuzhengdao/p/JavaPOIExcel.html
Copyright © 2011-2022 走看看