优化excel下载功能,采用新的工具类降低内存:

https://github.com/alibaba/easyexcel

pom:

<!-- easyexcel依赖包 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>easyexcel</artifactId>

<version>1.0.4</version>

</dependency>

<!-- lombok依赖包 -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.16.12</version>

<scope>provided</scope>

</dependency>

<!-- 注意开始 如果使用easyexcel下载工具,那么就poi版本换为高版本,比如:3.17【easyexcel中使用了高版本的poi进行改造】-->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>3.17</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>3.17</version>

</dependency>

package net.chrone.merchant.service.util.easyexcel;

import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.metadata.BaseRowModel;
import com.alibaba.excel.metadata.Sheet;
import com.alibaba.excel.support.ExcelTypeEnum;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @Description:    excel操作工具类
* @Version:        1.0
*/
public class ExcelUtils {
    /**
     * 导出
     * @param list
     * @param response
     * @param clazz
     * @return
     */
    public static  void export(List<? extends BaseRowModel> list, HttpServletResponse response, Class<? extends BaseRowModel> clazz) {
 
        ServletOutputStream out = null;
        try {
            out = response.getOutputStream();
        } catch (IOException e) {
            e.printStackTrace();
        }
        ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX, true);
        try {
            String fileName = new String(
                    (new SimpleDateFormat("yyyy-MM-dd").format(new Date())).getBytes(), "UTF-8");
            Sheet sheet2 = new Sheet(2, 3,clazz, "sheet", null);
            writer.write(list, sheet2);
            //response.setContentType("multipart/form-data");
            response.setCharacterEncoding("utf-8");
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", "utf-8"));
            //response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
            out.flush();
        } catch (Exception e) {
            //导出失败
        } finally {
            writer.finish();
            try {
                out.close();
            } catch (IOException e) {
                //流关闭失败
            }
        }
    }
}

package net.chrone.merchant.service.util.easyexcel.vo;

import com.alibaba.excel.annotation.ExcelProperty;

import com.alibaba.excel.metadata.BaseRowModel;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.experimental.Builder;

@SuppressWarnings("deprecation")

@Data

@Builder

@NoArgsConstructor

@AllArgsConstructor

public class AdvertisingIndentBo extends BaseRowModel {

// 订单编号

@ExcelProperty(value = {"广告编号"},index = 0)

private Integer id;

@ExcelProperty(value = {"交易"},index = 1)

//交易类型(导出时使用)

private String tradeTypeStr;

@ExcelProperty(value = {"资产名称"},index = 2)

private String coinName;

}

easyexcel下载工具相关推荐

  1. 使用 NSURLSession 开发一个支持后台下载和断点续传的下载工具

    NSURLSession 是 iOS 系统提供给我们的原生网络操作库,它提供了网络操作相关的一系列特性支持,比如缓存控制,Cookie管理,HTTP 认证处理等等,是一套整体的网络操作处理解决方案. ...

  2. Linux下的下载工具 axel

    下载地址:http://wilmer.gaast.net/main.php/axel.html Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍. 下载后使用如下命令编 ...

  3. GitHub标星1.5w+,从此我只用这款全能高速下载工具

    「免费学习 60+ 节公开课:投票页面,点击讲师头像」 作者 |  Rocky0429 来源 |  Python空间(ID:Devtogether ) 大家好,我是 Rocky0429,一个喜欢在网上 ...

  4. Ubuntu下非常给力的下载工具–aira2

    Windows下的下载工具--迅雷,之所以下载速度快,乃是它能搜索资源.为己所用,而不是仅仅从原始地址这单一资源处下载.Ubuntu下也有类似的工具,那就是aira2. aira2是一个命令行下载工具 ...

  5. http android下载工具,Android实现下载工具的简单代码

    下载应该是每个App都必须的一项功能,不采用第三方框架的话,就需要我们自己去实现下载工具了.如果我们自己实现可以怎么做呢? 首先如果服务器文件支持断点续传,则我们需要实现的主要功能点如下: 多线程.断 ...

  6. Linux 配置IP地址,子网,网关,DNS,linux远程, wget 下载工具

    查看命令识别的网卡名:nmcli connection show   配置ip,子网,网关    nmcli connection modify 'System eth0'  ipv4.method  ...

  7. curl 命令行下载工具使用方法小结

    获取curl curl 命令行下载工具 curl的官方网站为:    http://curl.haxx.se    官方下载页面为:http://curl.haxx.se/download.html ...

  8. [转]使用QT开发GoogleMap瓦片显示和下载工具

    第一节 之前做项目的时候经常遇到需要大量地图背景数据,然后没有数据被逼着去Google上下载瓦片数据在拼接成整张影像的工作,其实遥感影像晚上有很多可以下载到的,但是大部分是作为研究用的,作为GIS的背 ...

  9. python下载软件-python下载工具

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! you-get是一个基于 python 3 的下载工具. 使用 you-get ...

最新文章

  1. Xcode - Other Linker Flags
  2. sap data service安装方法
  3. 两张照片重叠处半透明_全面解读超焦距,让你的风景照片更锐更清晰
  4. android全面屏系统哪个版本开始,Android全面屏
  5. Fence Repair
  6. win7超极本盘符不见找回文件的方法
  7. OpenShift Security (12) - 用 RHACS 管理容器之间的网络访问策略
  8. 数值分析(2)-多项式插值: 拉格朗日插值法
  9. R语言——基础知识呕心沥血大汇总
  10. Mcafee(麦咖啡)8.5i 使用设置图解
  11. 和秋叶一起学PPT之绘制表格(课时七)
  12. word特殊符号汇总
  13. mysql报错:1406, Data too long for column
  14. Https证书浏览器红色警告解决
  15. android 双缓冲地图,卡马克卷轴算法的研究地图双缓冲.doc
  16. php打印10以内减法表,10以内加减法口诀表练习题口算题可打印(附下载)
  17. 1455 B - Jumps
  18. 听说你的程序又双叒叕乱码了
  19. 遥感影像制作深度学习样本之多光谱处理
  20. 事件10016,RuntimeBroker无法编辑

热门文章

  1. 绝地求生信号枪只能在服务器吗,想要空投吗? 告诉你绝地求生信号枪都在哪里...
  2. linux批量添加用户
  3. 内联函数和宏定义函数的区别
  4. android系统如何在静音模式下关闭camera拍照声音
  5. 基于Unity3D开发交通基础仿真模型实战
  6. bose solo5 蓝牙卡顿,内幕剖析BoseSolo5质量好不好?怎么样呢?全方位深度解析评测...
  7. 2019-04-03-Virtuoso-Virtuoso安装配置及使用
  8. mysql中常用函数与存储过程的创建
  9. 877数据结构与算法分析
  10. 尼尔: 机械纪元 之 钓鱼外设