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第二行表头字段保持一致即可