EasyExcel如何导出数据?超级简单,看这就够了

这篇具有很好参考价值的文章主要介绍了EasyExcel如何导出数据?超级简单,看这就够了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.引入依赖

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

2.后端代码

我们可以在官网找到相关代码

 /**
     * 文件下载(失败了会返回一个有部分数据的Excel)
     * <p>
     * 1. 创建excel对应的实体对象 参照{@link DownloadData}
     * <p>
     * 2. 设置返回的 参数
     * <p>
     * 3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大
     */
    @GetMapping("/export")
    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");
          /**
         * DownloadData.class:导出数据类型
         * .doWrite(data):导出数据来源,比如RecordService.getTodayRecord(),可以从我们自己            
         *写的方法中获取
         * .sheet():文件内标题,可以换成自己的
         */
           
        EasyExcel.write(response.getOutputStream(), DownloadData.class).sheet("模板").doWrite(data());
    }

3.前端调用

前端我们直接调用这个方法就行

methods:{
    exportRecord(){
      //相当于超链接,填写后端地址,_blank表示在新窗口打开
    
      window.open("/system/record/export","_blank");
    }}

4.导出表格内字段名是英文怎么解决

其实很简单,只需要在我们实体类上加上

@ExcelProperty注解就行了,
@ExcelIgnore注解用于忽略字段,我们不需要生成的字段就可以添加该注解

用法如下所示




@TableName("pay_record")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Record implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 交易记录表
     */
    @ExcelProperty("id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 交易类型
     */
    @ExcelIgnore
    private Integer type;


    /**
     * 交易类型内容
     */
    @ExcelProperty("交易类型")
    private String typeContent;

    /**
     * 日期
     */
    @ExcelProperty("创建时间")
    private String date;

    /**
     * 交易编号
     */
    @ExcelProperty("订单编号")
    private String out_trade_no;

    /**
     * 公司名称
     */
    @ExcelIgnore
    private String ename;

    /**
     * 交易金额(分)
     */
    @ExcelProperty("交易金额(分)")
    private int price;

    /**
     * 交易客户手机号
     */
    @ExcelProperty("交易客户手机号")
    private String phone;

    /**
     * 交易状态(交易失败  交易成功)
     */
    @ExcelIgnore
    private String state;

    @ExcelIgnore
    private Integer category;
    @ExcelIgnore
    private Integer aid;
    @ExcelIgnore
    private long timestamp;
    @ExcelIgnore
    private String appid;
    @ExcelIgnore
    private String partnerid;
    @ExcelIgnore
    private String noncestr;
    @ExcelIgnore
    private String sign;

 
}

5.总结

easyExcel是一个非常简单好用的数据导出导入工具,easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便。文章来源地址https://www.toymoban.com/news/detail-511430.html

到了这里,关于EasyExcel如何导出数据?超级简单,看这就够了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EasyExcel的简单导出

    EasyExcel的简单导出 Controller层代码 Service处理代码 SysColExcelDto.java类 这是使用easyExcel提供的注解来标记字段填充行数,这种情况适用于自动生成,如果是填充excel(doFill方式)可以不用ExcelProperty注解标识,但是需要在模板中标记数据填充位置 模板标记数据填充位置标记如下,

    2024年02月15日
    浏览(38)
  • 【Java面向对象】多态的详细介绍,简单易懂,看这一篇就够了

    A: 方法或对象具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承的基础之上的。简单来说,多态是具有表现多种形态的能力的特征。 消除类型之间的耦合关系 可替代性 可扩充性 接口性 灵活性 简化性 重载式多态在编译时已经确定好了。方法名相同而参数

    2024年01月20日
    浏览(66)
  • Numpy入门看这一篇就够了【史上入门最简单,开袋即食】

    一边学习一边分享,好记性不如烂笔头 目录 一边学习一边分享,好记性不如烂笔头 NumPy问题思考: numpy是什么? 为什么要学习numpy? numpy是怎么组成的?特点是什么? numpy的应用场景有哪些? NumPy介绍: Tensor概念: 1、ndarray数组 1.1、为什么引入ndarray数组 1.2、创建ndarray数组

    2024年02月09日
    浏览(50)
  • 用户订阅付费如何拆解分析?看这篇就够了

    会员制的订阅付费在影音娱乐行业中已相当普及,近几年,不少游戏厂商也开始尝试订阅收费模式。在分析具体的用户订阅偏好以及订阅付费模式带来的增长效果时,我们常常会有这些疑问: 如何从用户的整体付费行为中具体拆解订阅付费事件并分析? 想要了解当前应用内

    2023年04月25日
    浏览(46)
  • 纯小白如何进入游戏行业?看这篇就够了!

    游戏行业 一直都是一个非常 受欢迎的高薪行业 (高薪行业排名TOP.2) ,前景无量,市场广阔,发展迅速。 特别是在近年的 疫情大环境 下,游戏市场更加展现出了势头猛冲的劲儿。 潜力代表企业一览 数据来源:财经十一人 全球游戏市场玩家规模逐年稳步上升 ,游戏行业

    2024年02月10日
    浏览(37)
  • 新手如何学习挖漏洞?看这篇就够了【网络安全】

    有不少阅读过我文章的伙伴都知道,我从事网络安全行业已经好几年,积累了丰富的经验和技能。在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了安全防护水平。 也有很多小伙伴私信问我怎么学?怎么挖漏洞?怎么渗透?

    2024年02月16日
    浏览(47)
  • 使用Mask-RCNN训练自己的数据集看这一篇就够了,从制作数据集开始一步步教你如何玩转Mask-RCNN(保姆级教程)

    一、安装labelme  深度学习算法等基于神经网络的算法都是基于数据驱动的,数据的好坏会影响你最后生成的模型的好坏,在使用Mask-RCNN时,第一件事就是标注数据集,这里我们默认你已经配置好了anaconda的环境,如果你没有配置好可以参考一下其他人的博客,在已经配置好的

    2024年02月16日
    浏览(58)
  • 交换机如何隔离广播域?(看这篇文章就够了)

         交换机可以隔离冲突域但是不能隔离广播域,当主机数目较多时会导致安全隐患、广播泛滥、性能显著下降甚至造成网络不可用。在这种情况下出现了VLAN (虚拟局域网,Virtual Local Area Network)技术解决以上问题。       如图是一个典型的交换网络,网络中只有终端计算

    2024年02月10日
    浏览(44)
  • 关于HDMI如何连接显示器,看这篇文章就够了

    使用HDMI(高清多媒体接口)电缆将显示器连接到计算机,可以提供一种简单方便的方式来增强你的观看体验。HDMI是一种广泛使用的数字视频和音频接口,可实现视频和音频信号的高质量未压缩传输。使用HDMI,你可以在显示器上享受令人惊叹的视觉效果和水晶般清晰的声音,

    2024年02月01日
    浏览(90)
  • 还不会在Linux上面如何部署jar包?看这一篇就够了

    1、用WINSCP工具把对应的jar包上传到linux服务器指定位置 2、利用putty工具连接服务器,输入 cd / 命令切换到根目录; cd home/ 切换到jar包目录,我是放在了home目录下,这个要切换到对应的目录。 ll 命令查看目录下文件 3、输入命令启动jar包 一、后台启动,关闭当前窗口程序继续

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包