public String exportExcel(){
try {
//单机报表监控总结
//List<ReportVO> danJiSumLs= getInterpretingDataManager().findDanJiReportSummarizeList(date,strPropertyId);
//单机报表详情
List<ReportVO> danJiLs=getInterpretingDataManager().findDanJiReportSysList(date, strPropertyId);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(strPropertyId+"-"+date);
HSSFRow row = sheet.createRow((int) 0);
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("**<span style="font-family: Arial, Helvetica, sans-serif;">");</span>
cell = row.createCell((short) 1);
cell.setCellValue("<span style="font-family: Arial, Helvetica, sans-serif;">**</span><span style="font-family: Arial, Helvetica, sans-serif;">");</span>
cell = row.createCell((short) 2);
cell.setCellValue("**");
cell = row.createCell((short) 3);
cell.setCellValue("**");
cell = row.createCell((short) 4);
cell.setCellValue("**");
cell = row.createCell((short) 5);
cell.setCellValue("**");
cell = row.createCell((short) 6);
cell.setCellValue("**");
for (int i = 0; i < danJiLs.size(); i++) {
row = sheet.createRow((int) i + 1);
ReportVO reportVO=danJiLs.get(i);
row.createCell((short) 0).setCellValue(reportVO.getStrNormNumber());
row.createCell((short) 1).setCellValue(reportVO.getStrNormTypeName());
row.createCell((short) 2).setCellValue(reportVO.getStrNormName());
if(reportVO.getIntWhether().equals(Const.COMPLIANCE_YES)){
row.createCell((short) 3).setCellValue("**");
}else if (reportVO.getIntWhether().equals(Const.COMPLIANCE_NO)){
row.createCell((short) 3).setCellValue("**");
}
row.createCell((short) 4).setCellValue(reportVO.getStrValue());
row.createCell((short) 5).setCellValue(reportVO.getStrDetectionResult());
row.createCell((short) 6).setCellValue(reportVO.getStrRemark());
}
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-ddHHmmss");
String date=sdf.format(new java.util.Date());
downloadExcel(wb, getResponse(), strPropertyId+"-"+date+".xls");
} catch (Exception e) {
log.error(this,e);
}
return null;
}
/**
* 下载excel
* @param workbook
* @param response
* @param filename
* @throws IOException
*/
protected void downloadExcel(HSSFWorkbook workbook, HttpServletResponse response, String filename) throws IOException {
try{
OutputStream out = response.getOutputStream();
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
response.setContentType("application/msexcel;charset=UTF-8");
workbook.write(out);
out.flush();
out.close();
}catch(IOException e){
e.printStackTrace();
}
}
getOutputStream() has already been called for this response
原因:每个方法都返回的是一个ActionForward对象,而response是ActionForward对象参数,所以就会使response冲突!
所以处理上传的action返回null就可以了
最终我把action里的最后 “return SUCCESS ” 改成了 “return null ”