@RestController
@RequestMapping("/area")
public class AreaController {
//excel表头名
private static final String[] strArray = { "编号ID", "区域ID", "区域名称", "城市ID" };
//excel表头单元格数量
private static final Integer length = 4;
//excel文件名
private static final String name = "Excel下载";
@Autowired
private AreaServiceImpl areaService;
@GetMapping("/downExcel")
public void downExcel(HttpServletResponse response){
//数据库查询的数据
List<AreaEntity> list = areaService.select();
//创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//创建工作表及表名
HSSFSheet sheet = workbook.createSheet("第一页");
//设置行
HSSFRow row = sheet.createRow(0);
//设置格子单元样式
HSSFCellStyle cellStyle = workbook.createCellStyle();
//设置居中
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//设置边框
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); //上边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); //左边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); //右边框
//设置表头的名称
for (int i = 0; i < strArray.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellStyle(cellStyle);
cell.setCellValue(strArray[i]);
}
//设置表头宽的大小
for (int i = 0; i < length; i++) {
sheet.setColumnWidth(i,20*255);
}
//往工作表插入数据,循环遍历list
for (int i = 0; i < list.size(); i++) {
HSSFRow row1 = sheet.createRow(i + 1);
HSSFCell cell1 = row1.createCell(0);
cell1.setCellValue(list.get(i).getId());
cell1.setCellStyle(cellStyle);
HSSFCell cell2 = row1.createCell(1);
cell2.setCellValue(list.get(i).getAreaid());
cell2.setCellStyle(cellStyle);
HSSFCell cell3 = row1.createCell(2);
cell3.setCellValue(list.get(i).getArea());
cell3.setCellStyle(cellStyle);
HSSFCell cell4 = row1.createCell(3);
cell4.setCellValue(list.get(i).getCityid());
cell4.setCellStyle(cellStyle);
}
try {
OutputStream outputStream = response.getOutputStream();
response.setContentType("application/msexcel");
response.reset();
response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(name + ".xls", "UTF-8"));
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Excel导出结果