前言:本文使用后台处理的办法导出前端表格中显示的数据。
引入依赖
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency>
书写PoiUtils
public class PoiUtils { public static ResponseEntity<byte[]> exportExcel(List<Market> marketList) throws IOException { HttpHeaders headers=null; //创建文档 HSSFWorkbook workbook = new HSSFWorkbook(); //创建excel文档 HSSFSheet sheet = workbook.createSheet("市场表"); //定义列的宽度 sheet.setColumnWidth(0, 5 * 256); sheet.setColumnWidth(1, 10 * 256); sheet.setColumnWidth(2, 10 * 256); sheet.setColumnWidth(3, 10 * 256); sheet.setColumnWidth(4, 10 * 256); //设置表头 HSSFRow headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("编号"); headerRow.createCell(1).setCellValue("主题"); headerRow.createCell(2).setCellValue("预算"); headerRow.createCell(3).setCellValue("线索"); for (int i=0;i<marketList.size();i++){ HSSFRow row = sheet.createRow(i+1); Market market = marketList.get(i); row.createCell(0).setCellValue(market.getId()); row.createCell(1).setCellValue(market.getTheme()); row.createCell(2).setCellValue(market.getbudget()); row.createCell(3).setCellValue(market.getClue()); } //将excel写入到ByteArrayOutStream中 ByteArrayOutputStream bos = new ByteArrayOutputStream(); workbook.write(bos); headers=new HttpHeaders(); headers.setContentDispositionFormData("attachment", new String("员工表.xls".getBytes("utf-8"),"iso-8859-1")); //创建ResponseEntity实体并返回 return new ResponseEntity<byte[]>(bos.toByteArray(), headers, HttpStatus.CREATED); } }
显示效果