Util类
package utils; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.util.List; public class ExcelExportUtil { public static void export(List<String[]> data, String fileName, HttpServletResponse response) { Workbook workbook = new XSSFWorkbook(); // 创建新的Excel 工作簿 Sheet sheet = workbook.createSheet("Sheet1"); // 创建新的工作表 for (int i = 0; i < data.size(); i++) { Row row = sheet.createRow(i); // 在工作表中创建新的行 String[] fields = data.get(i); for (int j = 0; j < fields.length; j++) { Cell cell = row.createCell(j); // 在行中创建新的单元格 cell.setCellValue(fields[j]); // 设置单元格的值 } } response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); try{ ServletOutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); // 将工作簿写入输出流 } catch (Exception e) { e.printStackTrace(); } finally { try { workbook.close(); // 关闭工作簿 } catch (Exception e) { e.printStackTrace(); } } } }
Controller
@RequestMapping("/download") public void download(HttpServletResponse response) throws Exception { List<String []> list = new ArrayList<String[]>(); for (int i = 0; i < 1000 ; i++) { String [] string = new String[4]; string[0] = "张三"+i; string[1] = "北京"+i; string[2] = "18"+i; string[3] = "男"+i; list.add(string); } ExcelExportUtil.export(list,"测试数据",response); }