Vue+后端实现Excel下载

后端

 @PostMapping("/exportAttendanceHistory")
    public ResponseEntity exportAttendanceHistory(@RequestBody WcrWorkAttendanceDetailsHistory param){

        XSSFWorkbook book = new XSSFWorkbook();
        try {
            List list = iWcrWorkAttendanceDetailsHistoryService.exportAttendanceHistory(param);
            if (!CollectionUtils.isEmpty(list)) {

                XSSFSheet sheet = book.createSheet("mySheent");

                String[] vals = {"姓名", "班级名称","课程名称","上课老师","课程节次", "教室位置","周次",  "签到时间", "考勤结果","生成日期"};

                createExcel(sheet, 0, vals);

                for(int i = 0;i 0) {
            XSSFRow row = sheet.createRow(rowNo);
            for (int i = 0; i < vals.length; i++) {
                String val = vals[i];
                XSSFCell cell = row.createCell(i);
                cell.setCellValue(val);
            }
        }
    }

前端

 导出




exportExcel(){
      this.exportLoading = true;
      exportAttendanceHistory(this.attendanceDetail).then(res=>{
        if(!res) {
            this.$notify.error({
              title: '操作失败',
              message: '文件下载失败'
            })
        }

          const url = window.URL.createObjectURL(res.data)
          const link = document.createElement('a')
          link.style.display = 'none'
          link.href = url
          // 获取服务器端的文件名
          link.setAttribute('download', "历史考勤信息.xlsx")
          document.body.appendChild(link)
          link.click()
          this.exportLoading = false;
      })
    },

 

你可能感兴趣的:(前端,java)