public class JcfxExcelView extends AbstractExcelView{
@SuppressWarnings("unchecked")
@Override
protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook,
HttpServletRequest request, HttpServletResponse response)throws Exception {
String excelName = "交叉分析結果.xls";
// 設置response方式,使執行此controller時候自動出現下載頁面,而非直接使用excel打開
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename="+ new String(excelName.getBytes("GBK"),"ISO8859-1"));
List<student> xxx = (List<student>) model.get("xxx");
List<student> yyy = (List<student>) model.get("yyy");
List<teacher> values = (List<teacher>) model.get("values");
//create a wordsheet
HSSFSheet sheet = workbook.createSheet("交叉分析結果");
HSSFRow header = sheet.createRow(0);
for(int i=1;i<=yyy.size();i++){
header.createCell(i).setCellValue(yyy.get(i-1).getstudentcontent());
}
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("yyyy-mm-dd"));
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
//設置背景色
//cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
//cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
int rowNum = 1;
for (int i=0;i<xxx.size();i++) {
HSSFRow row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(xxx.get(i).getstudentcontent());
for(int j=1;j<=yyy.size();j++){
row.createCell(j).setCellValue(values.get(i).getYstudentCount().get(j-1));
}
}
}
}