公司项目中要使用easypoi,所以来做个记录
本次仅仅使用到导出execl,其他用到的时候再做更新

首先,easypoi是基于poi的,源码里也带着poi的东西
在使用easypoi的时候,使用的注解 比较多,省去了大量的格式配置等等

easypoi的整体思路是:建立实体类作为映射基础,再调用ExcelExportUtil中的各种方法满足各种操作

Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("数据", "dIntentH", ExcelType.XSSF), DIntentH.class, dIntentHList);
Workbook workbook = ExcelExportUtil.exportBigExcel(new ExportParams("采购订单", "dIntentH", ExcelType.XSSF),DIntentH.class,excelExportServer,pramMap);

如上述代码,有两种导出execl的方法,一种是普通导出exportExcel,一种是大数据导出exportBigExcel,

普通导出比较简单,ExportParams,class,数据集合三个参数就够了.

大数据导出需要自己写实现类,这个实现类是做分页(分批写入execl的),不至于耗费大量的CPU和内存去处理

简单的贴上实现类的代码

package com.rc.openapi.model.EasyPoi;import cn.afterturn.easypoi.handler.inter.IExcelExportServer;
import com.alibaba.fastjson.JSONObject;
import com.rc.openapi.domain.mysql.entity.DIntentH;
import com.rc.openapi.service.stock.DIntentHService;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;/*** @program: 111yao_springcloud* @description: 大数据导出实现类* @author: liuqiangqiang* @create: 2021-03-22 16:50**/
@Service
public class DIntentHIExcelExportServerImpl implements IExcelExportServer {@Resourceprivate DIntentHService dIntentHService;@Overridepublic List<Object> selectListForExcelExport(Object queryParams, int page) {@SuppressWarnings("unchecked")Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(queryParams), Map.class);Integer offset = (page - 1) * 100;map.put("offset", offset);map.put("limit", 100);List<DIntentH> dIntentHList = dIntentHService.queryByCondition(map);List<Object> objects = new ArrayList<>(dIntentHList);if (dIntentHList.size() == 0) {return null;}return objects;}
}

这个page参数会一直做循环,必须有返回null的截止点

在controller层中要先注入IExcelExportServer

 @Autowiredprivate IExcelExportServer excelExportServer;

贴上controller层的代码,没有做本地存根,直接是

/*** execl的导出*/@GetMapping("/export")public void export(HttpServletResponse response,String sourceBillNo,String sourceBillType,String intentType,String intentNo,Integer compid,String busno,String supplierNo,String ownerNo,String createTimeStart,String createTimeEnd,String validTimeStart,String validTimeEnd,Integer status,Integer transferStatus) {Map<String, Object> pramMap = new HashMap<>(16);if (!StringUtil.isNull(sourceBillNo)) {pramMap.put("sourceBillNo", sourceBillNo);}if (!StringUtil.isNull(sourceBillType)) {pramMap.put("sourceBillType", sourceBillType);}/*** 业务来源,区分门店请货还是仓间调拨*/pramMap.put("businessType", INTENT_BUSINESSTYPE);if (!StringUtil.isNull(intentType)) {pramMap.put("intentType", intentType);}if (!StringUtil.isNull(intentNo)) {pramMap.put("intentNo", intentNo);}if (compid != null) {pramMap.put("compid", compid);}if (!StringUtil.isNull(busno)) {pramMap.put("busno", busno);}if (!StringUtil.isNull(supplierNo)) {pramMap.put("supplierNo", supplierNo);}if (!StringUtil.isNull(ownerNo)) {pramMap.put("ownerNo", ownerNo);}if (!StringUtil.isNull(createTimeStart)) {pramMap.put("createTimeStart", createTimeStart);}if (!StringUtil.isNull(createTimeEnd)) {pramMap.put("createTimeEnd", createTimeEnd);}if (!StringUtil.isNull(validTimeStart)) {pramMap.put("validTimeStart", validTimeStart);}if (!StringUtil.isNull(validTimeEnd)) {pramMap.put("validTimeEnd", validTimeEnd);}if (status != null) {pramMap.put("status", status);}if (transferStatus != null) {pramMap.put("transferStatus", transferStatus);}String fileName = "采购订单.xlsx";
//        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("数据", "dIntentH", ExcelType.XSSF), DIntentH.class, dIntentHList);Workbook workbook = ExcelExportUtil.exportBigExcel(new ExportParams("采购订单", "dIntentH", ExcelType.XSSF),DIntentH.class,excelExportServer,pramMap);response.setCharacterEncoding("UTF-8");response.setHeader("content-Type", "application/vnd.ms-excel");try {response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));workbook.write(response.getOutputStream());} catch (IOException e) {e.printStackTrace();}}

Easypoi的简单教程相关推荐

  1. ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 异常和错误处理 上一章节中,我们学习了 ASP.NET Cor ...

  2. idea 从svn导入多个项目_IDEA导入项目简单教程

    该教程用于IDEA初学者导入eclipse项目,或者导入其他已经写好的Java源程序的简单教程. 我们用IDEA打开一个已经写好的项目源文件时,如果没有配置好,就会出现:JDK配置失误报错.程序无法启 ...

  3. expect简单教程

    expect简单教程 一.概述 expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Pas ...

  4. ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础 ...

  5. Git和Github简单教程

    网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章主要的目标是用较少的时间学习Git和Gi ...

  6. ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 标签助手 上一章节我们介绍了视图导入,学习了 ...

  7. ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单 ...

  8. wcf简单教程(10) ajax调用,wcf简单教程(10) ajax调用

    wcf简单教程(10) ajax调用 [2021-02-11 16:23:59]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&q ...

  9. ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单 ...

最新文章

  1. 为什么docker比VM快?
  2. 微服务架构:BFF和网关是如何演化出来的?
  3. python中lambda函数_python中的lambda函数用法
  4. 频域分析方法的理解(信号、频谱、能量谱、功率谱、倒频谱、小波分析)(终极教程)
  5. 检查坏道右键单击盘符/属性/工具中的查错。
  6. mysql 存储二进制数据_为什么在MySQL中存储二进制数据?
  7. docker oracle 11g
  8. 力扣59-螺旋矩阵(C++)
  9. Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
  10. 地铁译:Spark for python developers --- 搭建Spark虚拟环境 4...
  11. atitit.二维码生成总结java zxing
  12. 【测试报告】模板:性能测试报告 2
  13. C4droid导出程序
  14. JS判断不同的浏览器和版本,提示浏览器版本过低,兼容IE8到IE11
  15. 程序员的年终总结,各种版本各种残
  16. 微众银行贯彻普惠金融 探索金融扶贫新模式
  17. iOS新增3DTouch分享app菜单 (#原来iphone可以称重# ​ )
  18. python做相册_Python编程:制作电子相册
  19. Android 手机灭屏流程分析详解
  20. 学渣的刷题之旅 leetcode刷题 70.爬楼梯(动态规划)

热门文章

  1. 《秋波媚·七月十六日晚登高兴亭望长安南山》 陆游
  2. Flask--Blueprint(蓝图)简单使用笔记
  3. 计算机应用基础专业宣传手册,用微课学·计算机应用基础简介,目录书摘
  4. qt html 字体加粗,Qt 之字体设置(QFont)详解
  5. C++ 求绝对值函数abs()
  6. 教育行业数据可视化应用方案与实践
  7. 【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)...
  8. 打开计算机 访问不到d盘,教大家电脑找不到d盘的原因及解决办法
  9. Metasploit的简单应用
  10. 给我一面国旗@微信官方什么梗 怎么给微信头像戴上国旗