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< ...
随机推荐
- Spring Boot XML文件头
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...
- xampp+vscode 安装PHP断点调试xdebug
官网下载地址:https://xdebug.org/download.php 这里需要特别注意,有TS(thread safe)和NTS 区别,我建议不要下载最新的,我一开始使用最新的发现插件没有匹配 ...
- [项目自荐] 交叉编译njs并使用Nginx搭建自由的个人网盘:vList5
这个博客好久没有打理了,最近才想起来 这篇文章是以下 5 篇文章的组合,希望这个免费的项目能实现他的初衷吧 vList5:部署指南 vList5.3 全面加密,从我做起 njs 从入门(交叉编译)到入 ...
- 渐变边框文字效果?CSS 轻松拿捏!
今天,有个群友问了我这么一个问题,如果不想切图,是否有办法实现带渐变边框的字体效果?如下所示: 本文,就将尝试一下,在 CSS 中,我们可以如何尽可能的实现这种渐变边框字体效果. 元素叠加 首先,比较 ...
- 题解:P10520 [XJTUPC2024] 榕树之心
题意 给予你 \(x\) 和 \(y\),将 \(x,y\) 代入. 前面的一大堆都无用. 思路 将题目中的公式代入即可. 代码 #include<bits/stdc++.h> using ...
- Vue入门记录(一)
效果 本文为实现如下前端效果的学习实践记录: 实践 入门的最佳实践我觉得是先去看官网,官网一般都会有快速入门指引. 根据官网的快速上手文档,构建一个新的Vue3+TypeScript,查看新建的项目结 ...
- DP进阶合集
(ps:本集合为Star_F总结的dp进阶知识,持续更新~. 转载本文章需要联系我,否则视为侵权!!) 前置知识:线性dp,背包,树形dp,区间dp 内容预览: 状压dp 数位dp dp优化(前缀和, ...
- 测试工程师-bug的组成要素
bug的组成要素:所属产品.所属模块.版本.指派开发.bug标题.严重程度.优先级.bug类型.重现步骤.附件等: 1. 所属产品.所属模块.版本.指派开发 根据相应的项目正确填写 2.bug标题 简 ...
- 【H5】04 建立超链接
摘自: https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks 超链接 ...
- python高性能计算:cython入门代码
三种实现的对比: (1)纯python x.py def is_prime(num): for j in range(2, num): if (num%j)==0: return False retu ...