/**
* 将分区数据导出到excel表格中
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/subAreaController/export.action")
public void exportXlsFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
//1.得到所有分区数据
List<Subarea> subareas = subAreaService.getAll();
//2.将分区数据写入 xls文件
//创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//创建工作表
HSSFSheet sheet = workbook.createSheet("分区数据");
//创建一条记录
HSSFRow rowHead = sheet.createRow(0);
//填充记录的数据单元格
rowHead.createCell(0).setCellValue("分拣编号");
rowHead.createCell(1).setCellValue("省");
rowHead.createCell(2).setCellValue("市");
rowHead.createCell(3).setCellValue("区");
rowHead.createCell(4).setCellValue("关键字");
rowHead.createCell(5).setCellValue("起始号");
rowHead.createCell(6).setCellValue("终止号");
rowHead.createCell(7).setCellValue("单双号");
rowHead.createCell(8).setCellValue("位置");
//循环写入结果集
for(Subarea subarea:subareas){
HSSFRow rowDate = sheet.createRow(sheet.getLastRowNum() + 1);
rowDate.createCell(0).setCellValue(subarea.getId());
rowDate.createCell(1).setCellValue(subarea.getRegion()getProvince());
rowDate.createCell(2).setCellValue(subarea.getRegion().getCity());
rowDate.createCell(3).setCellValue(subarea.getRegion().getDistrict());
rowDate.createCell(4).setCellValue(subarea.getAddresskey());
rowDate.createCell(5).setCellValue(subarea.getStartnum());
rowDate.createCell(6).setCellValue(subarea.getEndnum());
rowDate.createCell(7).setCellValue(subarea.getSingle());
rowDate.createCell(8).setCellValue(subarea.getPosition());
}
//3.将xls文件写出到输出流中
String fileName = "分区数据.xls";
String mimeType = new MimetypesFileTypeMap().getContentType(new File(fileName));
response.setContentType(mimeType);
//根据浏览器对文件名字编码
String encodeDownloadFilenameFileName = FileUtils.encodeDownloadFilename(fileName, request.getHeader("user-agent"));
response.setHeader("Content-Disposition", "attachment;fileName="+encodeDownloadFilenameFileName);
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
}