Springboot + Vue + EasyExcel 【导出和导入】

Spring boot +Vue + EasyExcel [导出案例]

EasyExcel官方文档地址

EasyExcel 是什么?

EasyExcel 是一个基于java的简单,省内存的读写Excel的开源项目。在尽可能节省内存的情况下支持读写百万M的Excel.

1 导入依赖

   <!--easyExcel -->
 	    <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.1.0</version>
        </dependency>

1 Controller

    @PostMapping("/exportExcel")
    public void exportExcel(HttpServletResponse response) throws Exception {
        String token =jsonObject.getString("token");
        int id= JwtUtil.getIdToken(token);
        List<Order> orderList=indexService.showOrder(id);
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
        String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), Order.class).sheet("模板").doWrite(orderList);
    }

2 Vue页面

 this.axios.post("http://localhost:8181/demo/exportExcel", {token: token},{responseType:"blob"}).then(response => {
          let blob = new Blob([response.data], { type: 'application/vnd.ms-				excel;charset=utf-8' })
          let downloadElement = document.createElement('a');
          let href = window.URL.createObjectURL(blob); //创建下载的链接
          downloadElement.href = href;
          downloadElement.download = '订单表.xlsx';     //下载后文件名
          document.body.appendChild(downloadElement);
          downloadElement.click();                     //点击下载
          document.body.removeChild(downloadElement);  //下载完成移除元素
          window.URL.revokeObjectURL(href);            //释放掉blob对象
        })
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值