栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot 引入 EasyExcel 写入表让前端下载(Vue + axios请求)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot 引入 EasyExcel 写入表让前端下载(Vue + axios请求)

Springboot 引入 EasyExcel 写入表让前端下载(Vue + axios请求)

一、Springboot 引入 EasyExcel 依赖二、后端代码三、前端代码


一、Springboot 引入 EasyExcel 依赖

如果你在网上看到还要引入 poi 什么的依赖,那是针对旧版 easyexcel ,现在的版本不需要引入其他依赖,就下面的就可以了。


    com.alibaba
    easyexcel
    3.0.5


二、后端代码
@RequestMapping("/download")
public void download(HttpServletResponse response) throws IOException {
    // 这里的 ContentType 要和前端请求携带的 ContentType 相对应
    response.setContentType("application/vnd.ms-excel");
    response.setCharacterEncoding("utf-8");
    // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
    String fileName = URLEncoder.encode("测试", "UTF-8");
    response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
    // DownloadData 是实体类,sheet 里面是 sheet 名称,doWrite 里面放要写入的数据,类型为 List
    EasyExcel.write(response.getOutputStream(), DownloadData.class).sheet("模板").doWrite(data());
}

三、前端代码
getExcel(){
		//你们的函数不一定是 axios ,根据你们自己配置的来
		axios({
			headers: {
				//这里和后端的相对应
				"Content-Type": "application/vnd.ms-excel",
			},
			//这里也可以是 blob
			responseType: "arraybuffer"
			method: "post",
			url: '/download',
			// 请求参数,可以为空
			params: {
				
			},
		}).then(successResponse=> {
		//这里面是请求成功以后下载文件的方法
			let objectUrl = successResponse
			const blob = new Blob([successResponse], {'application/vnd.ms-excel'});
			objectUrl = URL.createObjectURL(blob);
			const a = document.createElement("a");
			a.href = objectUrl;
			//这里可以重新定义文件名,以前端为准
			a.download = "test.xlsx";
			a.click();
			a.remove();
			URL.revokeObjectURL(objectUrl)
		});
	},


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/708657.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号