springboot Utils Excel工具类

在公司做项目的时候用到了读取Excel的工具,从网上找了个工具类自己又根据需要改了改。上传一下以备下次使用

      <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.15</version>
      </dependency>
public class ExcelReader {
    private XSSFSheet sheet;
    ExcelReader(String filePath,String sheetName){
        FileInputStream fileInputStream = null;
        try {
            fileInputStream = new FileInputStream(filePath);
            XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
            //获取sheet
            sheet = sheets.getSheet(sheetName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据行和列的索引获取单元格的数据
     * @param row
     * @param column
     * @return
     */
    public String getExcelDateByIndex(int row,int column){
        XSSFRow row1 = sheet.getRow(row);
        String cell = row1.getCell(column).toString();
        return cell;
    }

    /**
     * 根据某一列值为“******”的这一行,来获取该行第x列的值
     * @param caseName
     * @param currentColumn 当前单元格列的索引
     * @param targetColumn 目标单元格列的索引
     * @return
     */
    public String getCellByCaseName(String caseName,int currentColumn,int targetColumn){
        String operateSteps="";
        //获取行数
        int rows = sheet.getPhysicalNumberOfRows();
        for(int i=0;i<rows;i++){
            XSSFRow row = sheet.getRow(i);
            String cell = row.getCell(currentColumn).toString();
            if(cell.equals(caseName)){
                operateSteps = row.getCell(targetColumn).toString();
                break;
            }
        }
        return operateSteps;
    }
/**
* #Description 获取一个方格内所有的数据
* @param
* @return
* @author Wu Xian
* #Date 2021/6/20
*/
    public List<List<String>> getCellBox(int beginRow,int endRow,int beginColumn,int endRowColumn){
        List<List<String>> rows = new ArrayList<>();
        for(int i = beginRow;i<=endRow;i++){
            XSSFRow row = sheet.getRow(i);
            List<String> cells = new ArrayList<>();
            for(int j = beginColumn;j<=endRowColumn;j++){
                String cell = row.getCell(j).toString();
                cells.add(cell);
            }
            rows.add(cells);
        }
        return rows;
    }
/**
* #Description 获取一个指定列区间从指定一行到最后的数据
* @param        
* @return 
* @author Wu Xian
* #Date 2021/6/21
*/
    public List<List<String>> getCellBox(int beginRow,int beginColumn,int endRowColumn){
        List<List<String>> rows = new ArrayList<>();
        int i = beginRow;
        while(!sheet.getRow(i).getCell(0).toString().equals("")){
            XSSFRow row = sheet.getRow(i);
            List<String> cells = new ArrayList<>();
            for(int j = beginColumn;j<=endRowColumn;j++){
                String cell = row.getCell(j).toString();
                cells.add(cell);
            }
            rows.add(cells);
            i++;
        }
        return rows;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务