• Vue + Axios Excel 请求后台下载 ResponseEntity


    后端代码

      /**
         * 小票数据导出
         */
        @RequestMapping(value = "/export.do" )
        public ResponseEntity<byte[]> receiptRawExport(HttpServletRequest request,
                @RequestBody FilterReceiptDto dto) throws IOException {
            // 干了很多活
            HSSFWorkbook workbook = ExcelUtils.excel(newlist,requestContext);
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            workbook.write(output);
            return new ResponseEntity<byte[]>(output.toByteArray(), headers, HttpStatus.CREATED);
            
        }

    前端代码

    that.$axios({ // 用axios发送post请求
            method: 'post',
            // 请求地址
            url: '/export.do', 
            // 参数
            data: {
              orgId: 1
            }, 
            // 表明返回服务器返回的数据类型
            responseType: 'blob'
          })
          .then((res) => { // 处理返回的文件流
              debugger;
              const content = res.data
              const blob = new Blob([content])
              const fileName = '导出.xls'
              if ('download' in document.createElement('a')) { // 非IE下载
                const elink = document.createElement('a')
                elink.download = fileName
                elink.style.display = 'none'
                elink.href = URL.createObjectURL(blob)
                document.body.appendChild(elink)
                elink.click()
                URL.revokeObjectURL(elink.href) // 释放URL 对象
                document.body.removeChild(elink)
              } else { // IE10+下载
                navigator.msSaveBlob(blob, fileName)
              }
          })
  • 相关阅读:
    0430
    hlg1306再遇攻击--射线法判断点是否在多边形内部
    hlg1429凸多边形 二分+叉积
    计算几何
    像个孩子一样
    i am so happy
    hdu3371Connect the Cities---最小生成树kruskal
    hlg1339Touring DIJ+堆优化
    hdu3790最短路问题
    Lucky Goddess
  • 原文地址:https://www.cnblogs.com/eason-d/p/11578315.html
Copyright © 2020-2023  润新知