La segunda forma dentro del controlador es esta
Código PHP:
@RequestMapping(value ="/list/excel")
public View listExcell() {
return new AbstractExcelView() {
@Override
protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook,
HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType ("APPLICATION / OCTET-STREAM");
response.addHeader("Content-Disposition", "attachment; filename=\"employee-list.xls\"");
logger.info("generando reporte excel..");
genericoBean stu1 = new genericoBean ("gaoxiang1", "male1", "20060101", "1");
genericoBean stu2 = new genericoBean ("gaoxiang2", "male2", "20060102", "2");
genericoBean stu3 = new genericoBean ("gaoxiang3", "male3", "20060103", "3");
genericoBean stu4 = new genericoBean ("gaoxiang4", "male4", "20060104", "4");
genericoBean stu5 = new genericoBean ("gaoxiang5", "male5", "20060105", "5");
ArrayList stuList = new ArrayList ();
stuList.add (stu1);
stuList.add (stu2);
stuList.add (stu3);
stuList.add (stu4);
stuList.add (stu5);
// Excel header
HSSFSheet sheet = workbook.createSheet("studentList");
HSSFRow header = sheet.createRow (0); // row 0
// Generate the title bar
header.createCell ((short) 0).setCellValue ("name");
header.createCell ((short) 1).setCellValue ("sex");
header.createCell ((short) 2).setCellValue ("date");
header.createCell ((short) 3).setCellValue ("count");
HSSFCellStyle cellStyle = workbook.createCellStyle ();
cellStyle.setDataFormat (HSSFDataFormat.getBuiltinFormat ("mm / dd / yyyy"));
// Fill data
int rowNum = 1;
for (Iterator iter = stuList.iterator (); iter.hasNext () ;) {
genericoBean element = (genericoBean) iter.next ();
HSSFRow row = sheet.createRow (rowNum ++);
row.createCell ((short) 0). setCellValue (element.getAttr1(). toString ());
row.createCell ((short) 1). setCellValue (element.getAttr2(). toString ());
row.createCell ((short) 2). setCellValue (element.getAttr3(). toString ());
row.getCell ((short) 2). setCellStyle (cellStyle);
row.createCell ((short) 3). setCellValue (element.getAttr4());
}
// Column is calculated as the sum of
HSSFRow row = sheet.createRow (rowNum);
row.createCell ((short) 0). setCellValue ("TOTAL:");
String formual = "SUM (D2: D" + rowNum + ")"; // D2 to D [rownum] cell Ki (count data)
row.createCell ((short) 3). setCellFormula (formual);
//}
}
};
}
Y en el jsp podemos poner lo siguiente
Código PHP:
<input type = "button" onclick = "javascript:window.location.href ='<%=request.getContextPath()%>/list/excel.htm'" value = "download excel" />
<a href="<%=request.getContextPath()%>/excelmvc.htm" >Download in Excel doc</a>
<br>
<a href="<%=request.getContextPath()%>/list/excel.htm" >Download in Excel2</a>
:distraido