Springboot Java使用HuTool读取Excel文件导入使用 超级简单只需3行代码

1、导入引入hutool 的依赖

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.4.5</version>
        </dependency>

2、创建实体类

package com.qr.gameServer100.dto;

import lombok.Data;

import java.math.BigDecimal;

@Data
public class HeroStarupAtb {
    //Excel标识符唯一ID
    private Integer heroStarup;
    //生命加成
    private BigDecimal hsaHp;
    //防御加成
    private BigDecimal hsaDef;
    //攻击加成
    private BigDecimal hsaAtt;

}

3、使用hutool工具类读取Excel 

   //@Resource
    //private RedisPoolMgr redisPoolMgr;

    public static void main(String[] args) throws Exception {
        //获取excel文件路径
        //URL resource = Resources.class.getClassLoader().getResource("excel/type_hero.xlsx");

        String excelPath = "D:\\java\\IDEA\\IDEAWork2\\\\src\\main\\resources\\excel\\test.xlsx";
        ExcelReader reader = ExcelUtil.getReader(new File(excelPath));
        List<HeroStarupAtb> heroStarupAtb = reader.read(1, 3, HeroStarupAtb.class);
        //读取完毕 循环集合获取数组
        for(HeroStarupAtb h : heroStarupAtb){
            Integer heroStarup = h.getHeroStarup();
            //此处省略....
        }

        //转换为map存放到redis当中
        //Map<String, String> heroStarupAtbMap = heroStarupAtb.stream().collect(Collectors.toMap(m -> m.getHeroStarup()+"", m -> JSONParser.getString(m)));
        //redisPoolMgr.hashMSet(version+ StaticData.RedisKeyForHeroStarupAtb,heroStarupAtbMap);
    }

reader.read(1,3, HeroStarupAtb.class);

参数入参讲解:

  • 第一个参数:表示读取Excel表头的第2行获取字段名来映射到实体类中 
  • 第二个参数:代表从Excel第4行开始读取数据
  • 第三个参数:HeroStarupAtb.class 是你自己对应的实体类

这里我只取了4个字段的值 大家如果想取更多的值可以在实体类中增加字段和Excel第二行表头字段保持一致即可

posted @ 2021-07-29 20:14  难忘是想起  阅读(0)  评论(0)    收藏  举报  来源