vue springboot 实现excel导出
实现excel 导出
一、需求
实现 excel 的导出
二、技术
选用 easypoi
官网:
https://gitee.com/lemur/easypoi#http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8
三、实现
1、前端
<el-button type="success" @click="handleExport">导出<i class="el-icon-upload el-icon--right"></i></el-button>
handleExport() {
let a = document.createElement('a')
a.href = "/xxx/export"
a.click()
}
2、后端
a、引入pom依赖
<!-- 引入EasyPoi包 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency> <dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
b、实体注解
@Data
public class UnitMaterialRecommendVo {
@Excel(name = "序号", width = 10)
private Integer num;
@Excel(name = "体系", width = 25, orderNum = "1")
private String unitSystem;
@Excel(name = "单位", width = 25, orderNum = "2")
private String unitName;
@Excel(name = "参评类型", width = 25, orderNum = "3", replace = { "参评单位申报推荐_10", "文明单位复查审核_20" })
private Integer reportType;
@Excel(name = "审核结果", width = 25, orderNum = "4", replace = { "审核中_0", "审核通过_1", "审核不通过_-1" })
private Integer state;
@Excel(name = "联系方式", width = 25, orderNum = "5")
private String unitDirectorPhone;
@Excel(name = "所属省市", width = 25, orderNum = "6")
private String unitCityName;
@Excel(name = "文明单位类型", width = 25, orderNum = "7", replace = { "四川省文明单位_10", "四川省最佳文明单位_20"})
private Integer civilizedUnitType;
@Excel(name = "备注", width = 30, orderNum = "8")
private String remark;
}
c、导出方法
List<UnitMaterialRecommend> list = this.list(wrapper);
String fileName = new String("文件名称.xls".getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setContentType("application/vnd.ms-excel;charset=gb2312");
List<UnitMaterialRecommendVo> result = new ArrayList<>();
AtomicInteger num = new AtomicInteger(1);
// 设置序号
list.forEach(item -> item.setNum(num.getAndIncrement()));
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), UnitMaterialRecommendVo.class, result);
workbook.write(response.getOutputStream());
三、备注
通过模板批量导出,采用 ExcelExportUtil.exportExcelClone 方法,详见下面示例:
private static final String SHEET_NAME = "sheetName";
@Override
public void multipleExport(HttpServletResponse response, UnitMaterialRecommend recommend) throws IOException { String fileName = new String("template.xls".getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setContentType("application/vnd.ms-excel;charset=gb2312");
TemplateExportParams params = new TemplateExportParams("template/materialTemplate.xls"); List<UnitMaterialRecommend> models = this.getModels(recommend);
List<Map<String, Object>> listMap = new ArrayList<>();
for (int j = models.size() - 1; j >= 0; j--) {
Map<String, Object> modelMap = this.getModelMap(models.get(j));
modelMap.put(SHEET_NAME, "sheet" + j);
listMap.add(modelMap);
}
Map<Integer, List<Map<String, Object>>> realMap = new HashMap<>();
realMap.put(0, listMap);
Workbook workbook = ExcelExportUtil.exportExcelClone(realMap, params);
workbook.write(response.getOutputStream());
}
~~~以上
vue springboot 实现excel导出的更多相关文章
- Vue项目实现excel导出
1.package.json里面安装三个插件 npm install xlsx --save npm install script-loader –save-dev npm install ...
- vue如何使用excel导出后台数据
let params = { // 请求参数 要下载Excel的id 'id':this.excelId }; //导入的接口名 api_excel_exportExcel().then(res =& ...
- Vue + axios + SpringBoot 2实现导出Excel
Vue + axios + SpringBoot 2实现导出Excel 1. 前端js代码-发送Http请求 /** * 文件下载 * @param url 下载地址 * @param fileNam ...
- vue springboot利用easypoi实现简单导出
vue springboot利用easypoi实现简单导出 前言 一.easypoi是什么? 二.使用步骤 1.传送门 2.前端vue 3.后端springboot 3.1编写实体类(我这里是dto, ...
- 使用VUE+SpringBoot+EasyExcel 整合导入导出数据
使用VUE+SpringBoot+EasyExcel 整合导入导出数据 创建一个普通的maven项目即可 项目目录结构 1 前端 存放在resources/static 下 index.html &l ...
- SpringBoot加Poi仿照EasyPoi实现Excel导出
POI提供API给Java程序对Microsoft Office格式档案读和写的功能,详细功能可以直接查阅API,因为使用EasyPoi过程中总是缺少依赖,没有搞明白到底是什么坑,索性自己写一个简单工 ...
- 基于springboot跟poi封装的最便捷的excel导出
发布时间:2018-11-15 技术:springboot1.5.6 + maven3.0.5 + jdk1.8 概述 Springboot最便捷的Excel导出,只需要一个配置文件即可搞定 ...
- SpringBoot使用Easypoi导出excel示例
SpringBoot使用Easypoi导出excel示例 https://blog.csdn.net/justry_deng/article/details/84842111
- abp框架Excel导出——基于vue
abp框架Excel导出--基于vue 目录 abp框架Excel导出--基于vue 1.技术栈 1.1 前端采用vue,官方提供 1.2 后台是abp--aspnetboilerplate 2. E ...
- springboot通过poi导出excel
Maven引入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...
随机推荐
- wangEditor增加源码模式,添加查看源码功能
wangEditor是一款轻量级的富文本编辑器.使用还比较方便,但是缺少查看源码模式,需要我们自定义一个menu给增加查看源码模式 下面是wangEditor增加源码模式的代码: <!DOCTY ...
- 高程读后感(四)— 关于BOM本人容易忽略的知识点总结
目录 window对象 window对象上属性及方法 超时调用setTimeout和间歇调用setInterval BOM location对象及其位置操作 history对象 window对象 wi ...
- OpenGL 4.0中数据缓冲VBO,VAO,EBO的使用总结
Opengl是大家常用的一个API,我们用它绘制数据的时候需要使用vao,vbo,ebo等对象,绘制方式分为 vao绘制,ebo绘制等.使用不同api还能分为普通调用以及Instance绘制. 首先申 ...
- OI生涯回忆&退役之后
一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的进程 --<庄子·秋水> 好吧,现在是2024年7月24日,我现在正坐在某编程机构的办公室电脑旁,写下这些文字,是啊,我已经退役将近两 ...
- 【Java】在线文件预览服务 KkFileView
原来有第三方在线预览服务接口: 需要收费使用: https://view.xdocin.com/ 但是经费不足,突然撤掉服务接口,只能把KkFileView架出来使用了 KkFileView官网地址: ...
- 【SpringMVC】06 转发 & 重定向
除了快速入门的视图解析器方式处理, 我们还可以使用原生的Servlet转发方式执行 访问测试 还有重定向 访问 测试 使用SpringMVC的转发&重定向 和原生的重定向,有一点不同,MVC的 ...
- 【Vue】Re06 组件化
将一个应用页面拆分成若干个可重复使用的组件 一.Vue的组件的使用步骤: 1.创建组件构造器 2.注册组件 3.使用组件 <!DOCTYPE html> <html lang=&qu ...
- 搞笑视频 —— 每天一乐 —— "齐老师妙~啊!"
视频地址: https://quanmin.baidu.com/v/7250265959743227122
- 【转载】 介绍具有代表性的CPG控制机器人
原文地址: https://www.cnblogs.com/zhaochenliang/p/10453255.html ---------------------------------------- ...
- Python示例——负数的位运算
平时在coding的时候虽然会遇到位运算但一般也都是正数的位运算,今天突然见到了使用负数的位运算,对此十分好奇和困惑,为此做了下了解,于是有了此文. 给出一些位运算的例子: 其中,正数的位运算是最为常 ...