依赖
<!--easypoi导出excel-->
<!--easypoi-base 导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能-->
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-base</artifactId>
<version>2.3.1</version>
</dependency>
<!--easypoi-web 耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能-->
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-web</artifactId>
<version>2.3.1</version>
</dependency>
<!--easypoi-annotation 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理-->
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>2.3.1</version>
</dependency>
controller
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.nusp.Entity.Common.EasyPoiExcel;
@Autowired
CommonMapper commonMapper;
/**
* 导出
* @param request
* @param response
* @throws Exception
*/
@ApiOperation("导出")
@GetMapping("deriveExcel")
public void deriveExcel(HttpServletRequest request, HttpServletResponse response, AccessTableVo queryParams) throws Exception {
// 告诉浏览器用什么软件可以打开此文件
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下载文件的默认名称
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("导出的表格", "UTF-8") + ".xls");
//编码
response.setCharacterEncoding("UTF-8");
List<EasyPoiExcel> list = commonMapper.selectTableExcel(queryParams);
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), EasyPoiExcel.class, list);
workbook.write(response.getOutputStream());
}
实体
package com.nusp.Entity.Common;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelTarget;
/**
* @User:
* @Date: 2022/9/9 15:59
*/
@ExcelTarget("EasyPoiExcel")
@Data
public class EasyPoiExcel {
//项目编号
@Excel(name = "项目编号", orderNum = "2", mergeVertical = true, isImportField = "projectNo")
private String projectNo;
//项目名称
@Excel(name = "项目名称", orderNum = "2", mergeVertical = true, isImportField = "projectName")
private String projectName;
//站点名称
@Excel(name = "站点名称", orderNum = "2", mergeVertical = true, isImportField = "siteName")
private String siteName;
//站点类型
@Excel(name = "站点类型", orderNum = "2", mergeVertical = true, isImportField = "siteType")
private String siteType;
//客户名称
@Excel(name = "客户名称", orderNum = "2", mergeVertical = true, isImportField = "userName")
private String userName;
//运维供应商
@Excel(name = "运维供应商", orderNum = "2", mergeVertical = true, isImportField = "supplierName")
private String supplierName;
//用户编号
@Excel(name = "用户编号", orderNum = "2", mergeVertical = true, isImportField = "consNo")
private String consNo;
//用能客户联系人
@Excel(name = "用能客户联系人", orderNum = "2", mergeVertical = true, isImportField = "contacts")
private String contacts;
//联系方式
@Excel(name = "联系方式", orderNum = "2", mergeVertical = true, isImportField = "contactTel")
private String contactTel;
//用能客户联系人
@Excel(name = "用能客户联系人", orderNum = "2", mergeVertical = true, isImportField = "sucontacts")
private String sucontacts;
//联系方式
@Excel(name = "联系方式", orderNum = "2", mergeVertical = true, isImportField = "sucontactTel")
private String sucontactTel;
//对接系统
@Excel(name = "对接系统", orderNum = "2", mergeVertical = true, isImportField = "sysCode")
private String sysCode;
//角色
@Excel(name = "角色", orderNum = "2", mergeVertical = true, isImportField = "role")
private String role;
//用户ID
@Excel(name = "用户ID", orderNum = "2", mergeVertical = true, isImportField = "userId")
private String userId;
//站点ID
@Excel(name = "站点ID", orderNum = "2", mergeVertical = true, isImportField = "siteId")
private String siteId;
//智能运维项目状态
@Excel(name = "智能运维项目状态", orderNum = "2", mergeVertical = true, isImportField = "statusZ")
private String statusZ;
//能效管理项目状态
@Excel(name = "能效管理项目状态", orderNum = "2", mergeVertical = true, isImportField = "statusN")
private String statusN;
//需求响应项目状态
@Excel(name = "需求响应项目状态", orderNum = "2", mergeVertical = true, isImportField = "statusX")
private String statusX;
//站点类型编号
@Excel(name = "站点类型编号", orderNum = "2", mergeVertical = true, isImportField = "siteTypes")
private String siteTypes;
}
前端
//导出
deriveExcel(){
let opt = {
url: "Common/deriveExcel",
method: 'get',
responseType: 'blob',
data: this.AccessDataManager
}
this.$axios.request(opt).then(res => {
if (!res) return
const blob = new Blob([res.data], {type: 'application/vnd.ms-excel;'})
const a = document.createElement('a');
// 生成文件路径
let href = window.URL.createObjectURL(blob)
a.href = href
// 文件名中有中文 则对文件名进行转码
a.download = decodeURIComponent('导出');
// 利用a标签做下载
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
window.URL.revokeObjectURL(href)
this.allloading = false;
})
},
完结撒花