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));
  • 相关阅读:
    用户(三)
    首页和token验证(二)
    项目初始化和登录退出(一)
    VSCode设置vue/react模板
    Git操作
    C#可视化程序设计第三章(1,2)
    C#可视化程序设计第二章(3,4)
    SQL数据库第五章
    C#可视化程序设计第一章
    SQL数据库第四章
  • 原文地址:https://www.cnblogs.com/liuzhengdao/p/JavaPOIExcel.html
Copyright © 2011-2022 走看看