EasyExcel基本使用

本文介绍了阿里开源的EasyExcel工具,它是一款简单、内存消耗低的Java Excel读写库。文章详细讲解了如何导入依赖、导出数据、导入数据、处理多sheet以及应对复杂表头的导出和导入,提供了具体的代码示例,适合开发者快速上手使用。
摘要由CSDN通过智能技术生成

官网地址: EasyExcel

本文代码: EasyExcelDemo

​ 在开发中Excel的导入导出是非常常见的需求,最近在项目中用到了阿里的EasyExcel,简单学习下,还是比较容易上手的。下面记录下

EasyExcel介绍

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。

导入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.2</version>
</dependency>

导出

例如现在要导出如下Excel:

在这里插入图片描述

使用模型导出

使用模型导出时,EasyExcel会根据导出实体中 @ExcelProperty注解生成表头

  • 模型注解说明
@HeadRowHeight:设置表头高度,作用域在类
@ExcelIgnoreUnannotated:忽略没有注解标记的字段,作用域在类
@ExcelIgnore:忽略指定的字段,作用域在字段
@ExcelProperty:指定导出列名和索引,作用域在字段
@ColumnWidth:设置列的宽度,作用域在字段
@NumberFormat:设置数值精度,作用域在字段,例:@NumberFormat(value = "#.00")
@DateTimeFormat:格式化日期,作用域在字段,例:@DateTimeFormat(value = "yyyy-MM-dd")
  • 建立模型
@Data
@NoArgsConstructor
@AllArgsConstructor
@ColumnWidth(15)   // 设置列宽
public class ExcelDemoDto {
   
    @ExcelProperty("字符串测试1")
    private String column1;

    @ExcelProperty("字符串测试2")
    private String column2;

    @ExcelProperty("数字测试")
    private BigDecimal number;

    @ExcelProperty("日期测试")
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date date;
}
  • 导出实现
public void easyWrite(HttpServletResponse response) throws IOException {
   
    response.setContentType("application/vnd.ms-excel");
    response.setCharacterEncoding("utf-8");
    // 这里URLEncoder.encode防止中文乱码
    String fileName = URLEncoder.encode("导出", "UTF-8");
    response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
    ServletOutputStream outputStream = response.getOutputStream();
    // 获取导出数据
    List<ExcelDemoDto> exportData = new ArrayList<>();
    ExcelDemoDto excelDemoDto = new ExcelDemoDto("zjm","520", BigDecimal.valueOf(20),new Date());
    exportData.add(excelDemoDto);
    // 初始化ExcelWriter
    ExcelWriter writer = EasyExcel.write(outputStream).build();
    // 初始化一个sheet
    WriteSheet sheet1 = EasyExcel.writerSheet(0, "sheet1")
        .head(ExcelDemoDto.class)
        .registerW
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值