2021-10-10

官网地址:读Excel · 语雀

导入依赖坐标

<!-- EasyExcel 依赖-->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>easyexcel</artifactId>

<version>2.2.11</version>

</dependency>

 注解api 讲解:
@ExcelProperty 指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index=0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。千万别三个混着用,除非你非常了解源代码中三个混着用怎么去排序的。 
@ExcelIgnore 默认所有字段都会和excel去匹配,加了这个注解会忽略该字段 
@DateTimeFormat 日期转换,用String去接收excel日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormat 
@NumberFormat 数字转换,用String去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormat 
@ExcelIgnoreUnannotated 默认不加ExcelProperty 的注解的都会参与读写,加了不会参与

代码实现简单的excel表格的读写操作:

@Configuration 
public class AliinListion extends AnalysisEventListener<User> { 

public List<User> list = new ArrayList<>(); 

// 读数据每次都会进行调用invoke 的方法 (可以在invoke方法里面进行逻辑的处理) 
@Override
 public void invoke(User user, AnalysisContext analysisContext) { 
    System.out.println(user); 
    } 
// 读取完工作薄最后调用的方法 
@Override
 public void doAfterAllAnalysed(AnalysisContext analysisContext) { 
    } 
}

实体类:

@Data 
@AllArgsConstructor
 @NoArgsConstructor
 @ToString
 public class User { 
@ExcelIgnore
 @ExcelProperty(value = "ID")
 private Long id; 
@ExcelProperty(value = "性别")
 private String sex;
 @ExcelProperty(value = "出生日期")
 @DateTimeFormat("YYYY-MM-dd DD:mm:ss")
 private Date birthday; 
@ExcelProperty(value = "学生姓名") 
private String name; }
public class EasyExcelTest {
    @Autowired
    private AliinListion aliinListion;

    // 完成execle 表格的读写需要先进行监听是实现
    /**
     *  excel 表格的读操作
     */
    @Test
    public void test01() {
        // 创建工作薄
        ExcelReaderBuilder readWrodBook = EasyExcel.read("F:\\easyexcle\\src\\main\\resources\\qwe.xlsx", User.class, aliinListion);
        // 创建工作表
        ExcelReaderSheetBuilder sheet = readWrodBook.sheet();
        // 读取数据;
        sheet.doRead();
    }

    /**
     * 往excel 表格 编写数据
     */
    @Test
    public void test02() {
        // 创建工作薄
        ExcelWriterBuilder write = EasyExcel.write("F:\\easyexcle\\src\\main\\resources\\qwe_____.xlsx", User.class);
        // 创建工作表
        ExcelWriterSheetBuilder sheet = write.sheet();
        // 往里面进行编写数据;
        sheet.doWrite(init());
    }

    public List<User> init() {
        ArrayList<User> userArrayList = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setBirthday(new Date());
            user.setName("张三" + i);
            user.setSex("男");
            userArrayList.add(user);
        }
        return userArrayList;

    }
}

官网地址: https://www.yuque.com/easyexcel/doc/read

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值