easy-excel的简单导出

easy-excel简单的导出代码编写

点击跳转为官方地址

以下为初次进行使用的步骤,仅供参考

一、引入依赖

1、maven依赖
查看最新版本的maven以及历史版本


<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>最新版本</version>
</dependency>
二、导出excel对应的实体类

1、实体类正常均需加上注解,来自lombok,如果不使用需要手动添加get、set

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@EqualsAndHashCode

2、根据需要导出的数据,匹配对应的表的字段建立对应的实体类,并进行添加相应的注解

    @ExcelProperty("名称")
    private String name;

在括号中的中文名称在导出的时候就会在excel的表头展示。

3、部分特殊处理
(1)同一个含义的不同分类情况

@ExcelProperty({"日水位(m)", "平均"})
@ExcelProperty({"日水位(m)", "最小"})
@ExcelProperty({"日水位(m)", "最大"})

这些对应的情况就是在你需要展示同一个含义的不同分类情况时候使用(注意其中的 {} 不要忘记),效果展示
excel效果展示
(2)导出的时候希望对于日期进行格式化需求,可能有的需要yyyy-MM-dd这种形式,或者有的希望到秒级别,只需加一个注解即可

@DateTimeFormat("yyyy-MM-dd")

这样在导出的excel中会自动进行日期的格式化
(3)导出在日期到时分秒时候,可能会因为单元格大小问题,出现全是**#**的情况,这里我简单解决方式,修改单元格大小,添加注解

@ColumnWidth(20)

如果仍然**#**,可以适当修改大小尝试。

注意:需要导出的字段要带上@ExcelProperty注解,不使用的字段可以添加@ExcelIgnore注解,导出的时候会忽略,要注意字段需要严格匹配,才可以正确导出

三、java代码编写

1、在官方文档已经进行提供,这里粘贴

/**
     * 文件下载(失败了会返回一个有部分数据的Excel)
     * <p>
     * 1. 创建excel对应的实体对象 参照{@link DownloadData}
     * <p>
     * 2. 设置返回的 参数
     * <p>
     * 3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大
     */
@GetMapping("download")
    public void download(HttpServletResponse response) throws IOException {
        // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
        String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), DownloadData.class).sheet("模板").doWrite(data());
    }

下方进行解释,图片注释
代码描述

以上仅为个人理解easy-excel的简单导出,希望对你有所帮助!

免责声明
本人发布本文。您阅读或使用本内容时,视为已同意以下条款:

内容性质:本文所有信息(含第三方引用内容)仅作参考交流之用,不构成专业建议。
责任豁免:因使用本文内容导致的直接或间接损失(包括数据丢失、决策失误等),本人不承担任何法律责任。
用户义务:您需自行判断内容适用性,并承担使用后果。若转载、引用本文,须完整保留原文出处及作者信息,不得曲解原意。
不可抗力:如因黑客攻击、系统故障、政策调整等不可控因素导致内容错误或服务中断,本人免责。
争议管辖:本声明解释权归[本人]所有,争议适用[中国]法律。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值