packagemvc.controller;importjava.io.OutputStream;importjava.io.UnsupportedEncodingException;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.List;importjavax.annotation.Resource;importjavax.servlet.http.HttpServletResponse;importmvc.model.Feedback;importmvc.model.JResponse;importmvc.model.apis.DownloadExcel;importmvc.service.IAppInfoService;importmvc.service.IBusinessService;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.ResponseBody;importcom.prize.utils.StringUtil;importutils.ExcelUtil;
@Controller
@RequestMapping(value="/excel/*")public classExcelController {
@ResourceprivateIAppInfoService appinfoService;
@ResourceprivateIBusinessService businessService;
@RequestMapping(value= "exportfeedback")
@ResponseBodypublicJResponse exportFeedBack(HttpServletResponse response,
@RequestParam(value="query", required=false) String searchText,
@RequestParam(value="type", required=false) String strType,
@RequestParam(value="startDate", required=false) String startDate,
@RequestParam(value="endDate", required=false) String endDate){
String fileName= "反馈明细"+System.currentTimeMillis()+".xls"; //文件名
String sheetName = "反馈明细";//sheet名
String []title= new String[]{"Id","导航图标","反馈类型","内容","联系方式","应用Id","应用版本","反馈时间"};//标题
List list = appinfoService.getAllFeedbackForExcel(searchText, strType, startDate, endDate);//内容list
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String [][]values= newString[list.size()][];for(int i=0;i
values[i]= newString[title.length];//将对象内容转换成string
Feedback obj =list.get(i);
values[i][0] = obj.getId()+"";
values[i][1] =obj.getFiles();
values[i][2] =obj.getFbType();
values[i][3] =obj.getContent();
values[i][4] =obj.getContactInfo();
values[i][5] =obj.getAppId();
values[i][6] =obj.getVersionName();
values[i][7] =sdf.format(obj.getCreateTime());
}
HSSFWorkbook wb= ExcelUtil.getHSSFWorkbook(sheetName, title, values, null);//将文件存到指定位置
try{this.setResponseHeader(response, fileName);
OutputStream os=response.getOutputStream();
wb.write(os);
os.flush();
os.close();
}catch(Exception e) {
e.printStackTrace();
}return JResponse.success("ok");
}public voidsetResponseHeader(HttpServletResponse response, String fileName) {try{try{
fileName= new String(fileName.getBytes(),"ISO8859-1");
}catch(UnsupportedEncodingException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
response.setContentType("application/octet-stream;charset=ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
}catch(Exception ex) {
ex.printStackTrace();
}
}
}