前端代码
const downloadExcel2 = async () => {
try {
const token = getToken();
const response = await axios.get('/api/downloadTemp', {
responseType: 'blob',
headers: {
'Authorization': `Bearer ${token}`,
},
});
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'export.xlsx'); // 设置下载文件名
document.body.appendChild(link);
link.click();
} catch (error) {
console.error('导出失败', error);
}
};
后端代码
package com.example.membersteward.controller;
import cn.idev.excel.EasyExcel;
import cn.idev.excel.ExcelWriter;
import com.example.membersteward.common.CommonResult;
import com.example.membersteward.service.FileService;
import com.example.membersteward.util.ExcelUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
public class FileController {
@Resource
FileService fileService;
@GetMapping("/api/downloadTemp")
public void downloadTemp(HttpServletResponse response) throws IOException {
// 创建一个新的Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建行和单元格并设置值
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello, Excel!");
// 设置响应头信息
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment;filename=export.xlsx");
// 将Excel写入响应输出流
workbook.write(response.getOutputStream());
workbook.close();
}
}
点击下载模板之后打开excel报错
