EasyPOI实现excel文件导出

news/2024/10/18 2:26:44/

EasyPOI真的是一款非常好用的文件导出工具,相较于传统的一行一列的数据导出,这种以实体类绑定生成的方式真的非常方便,也希望大家能够了解、掌握其使用方法,下面就用一个实例来简单介绍一下EasyPOI的使用。

1.导入依赖

        <!-- easypoi导出 --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.2.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>4.2.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>4.2.0</version></dependency>

2.创建对应实体类

package com.wulian.training.center.export;import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;@Data
public class TestScoreExportDTO {/*** 序号*/@Excel(name = "序号", orderNum = "1", width = 15)private Integer id;/*** 人员名称*/@Excel(name = "人员名称", orderNum = "2", width = 15)private String personName;/*** 达标天数*/@Excel(name = "达标天数", orderNum = "3", width = 15)private Integer passCount;/*** 积分总数*/@Excel(name = "积分总数", orderNum = "4", width = 15)private String totalScore;/*** 日平均积分*/@Excel(name = "日平均积分", orderNum = "5", width = 15)private String avgScore;/*** 积分排名*/@Excel(name = "积分排名", orderNum = "6", width = 15)private Integer number;}

3.导出方法
 

    @PostMapping("/export")@ApiOperation(value = "导出")public ResultMoudel export(@RequestParam(required = false)String name,HttpServletRequest request) throws IOException {Map map=new HashMap();map.put("name",name);map.put("companyId",sysUser.getCompanyId());List<TestScoreExportDTO> list=appTestManageMapper.selectOrderByTypePage(map);AtomicInteger id = new AtomicInteger(new Integer(1));list.stream().forEach(iter->{iter.setId(id.getAndIncrement());});String fileName = "积分信息";//设置导出参数ExportParams exportParams = new ExportParams("积分信息", "排名", ExcelType.XSSF);//设置表头exportParams.setCreateHeadRows(true);
//        exportParams.setAddIndex(true);//数据渲染Workbook sheets = ExcelExportUtil.exportExcel(exportParams, TestScoreExportDTO.class, list);//导出final String downloadName = new String((fileName + ExcelTypeEnum.XLSX.getValue()).getBytes(), StandardCharsets.ISO_8859_1);
//        response.setCharacterEncoding("UTF-8");response.setHeader("content-Type", "application/vnd.ms-excel");response.setHeader("Content-Disposition", "attachment;filename=" + downloadName);//获取输出流,将excel输出ServletOutputStream outputStream = response.getOutputStream();sheets.write(outputStream);return new ResultMoudel<>().success("导出成功");}

 导出成功:


http://www.ppmy.cn/news/1215735.html

相关文章

Django——路由层

一. 路由匹配 1. 路由匹配注意事项 urlpatterns [url(r^admin/, admin.site.urls),# 首页url(r^$,views.home),# 路由匹配url(r^test/$,views.test),url(r^testadd/$,views.testadd),# 尾页(了解): 后期使用异常捕获处理, 这样的尾页让django的第二次在路径中斜杠APPEND_SL…

计算机网络期末复习-Part5

1、CRC计算 看例题&#xff1a;待发送序列为101110&#xff0c;生成多项式为X31&#xff0c;计算CRC校验码 先在待发送序列末尾添加与生成多项式次数相同的零&#xff0c;在上述例子中&#xff0c;生成多项式是X^3 1&#xff0c;所以需要添加3个零&#xff0c;待发送序列变成…

使用opencv实现图像的畸形矫正:仿射变换

1 仿射变换 1.1 什么是仿射变换 在图像处理中&#xff0c;经常需要对图像进行各种操作如平移、缩放、旋转、翻转等&#xff0c;这些都是图像的仿射变换。图像仿射变换又称为图像仿射映射&#xff0c;是指在几何中&#xff0c;一个向量空间进行一次线性变换并接上一个平移&…

结合大模型进行降本增效之——自动化测试

软件测试中&#xff0c;有哪些步骤能结合大模型的AIGC和数据分析能力&#xff1f; 生成测试用例 利用GPT-3.5 Turbo的自然语言生成能力&#xff0c;让它根据需求自动生成测试用例。例如&#xff0c;你可以向GPT-3.5 Turbo提供关于某个功能或者页面的描述&#xff0c;然后让它生…

C/C++交换输出 2021年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C交换输出 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C交换输出 2021年9月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 输入两个整数a,b&#xff0c;将它们交换输出 2、输入输…

Ps:通过显示大小了解图像的打印尺寸

在 Photoshop 中&#xff0c;如果想了解文档窗口中的图像打印出来之后的实质大小&#xff0c;只要知道两个数值即可。 第一个数值是图像分辨率&#xff08;也称“文档分辨率”&#xff09;的大小&#xff0c;可在Ps菜单&#xff1a;图像/图像大小 Image Size对话框中查询或设置…

什么是状态机?

什么是状态机&#xff1f; 定义 我们先来给出状态机的基本定义。一句话&#xff1a; 状态机是有限状态自动机的简称&#xff0c;是现实事物运行规则抽象而成的一个数学模型。 先来解释什么是“状态”&#xff08; State &#xff09;。现实事物是有不同状态的&#xff0c;例…

Redis解决缓存问题

目录 一、引言二、缓存三、Redis缓存四、缓存一致性1.缓存更新策略2.主动更新 五、缓存穿透六、缓存雪崩七、缓存击穿1.基于互斥锁解决具体业务2.基于逻辑过期解决具体业务 一、引言 在一些大型的网站中会有十分庞大的用户访问流量&#xff0c;而过多的用户访问对我们的MySQL数…