importjava.util.List;importjava.util.Map;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.poi.hssf.usermodel.HSSFCell;importorg.apache.poi.hssf.usermodel.HSSFCellStyle;importorg.apache.poi.hssf.usermodel.HSSFRow;importorg.apache.poi.hssf.usermodel.HSSFSheet;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.hssf.util.HSSFColor;importorg.springframework.web.servlet.view.document.AbstractExcelView;public class SimpleExcelView extendsAbstractExcelView {/*** 生成excel视图,可用excel工具打开或者保存 单行表头,简单模板
* 例子可参考:问题反馈_excel导出*/
public void buildExcelDocument(Mapmodel, HSSFWorkbook workbook,
HttpServletRequest request, HttpServletResponse response)throwsException {//设置文件名//创建sheet
HSSFSheet sheet =workbook.createSheet();//设置样式
HSSFCellStyle hssCellStyle =getGeneralCellStyle(workbook);//处理表格头
String[] headArr = (String[]) model.get("head");
sheet.setDefaultColumnWidth(headArr.length);
HSSFCell cell= null;int colNum =headArr.length;for (int i = 0; i < colNum; i++) {
cell= getCell(sheet, 0, i);
setText(cell, headArr[i]);
cell.setCellStyle(hssCellStyle);//设置列宽
sheet.setColumnWidth(i, 5000);
}//处理数据
List> data = (List>) model.get("data");
List row = null;int rowNum =data.size();for (int i = 0; i < rowNum; i++) {
row=data.get(i);for (int j = 0; j < colNum; j++) {
cell= getCell(sheet, i + 1, j);
setText(cell,"" +row.get(j));
cell.setCellStyle(hssCellStyle);
}
}
}/*** 设置样式
*
*@paramcell
*@paramworkbook*/
publicHSSFCellStyle getGeneralCellStyle(HSSFWorkbook workbook) {
HSSFCellStyle cellStyle=workbook.createCellStyle();
cellStyle.setLocked(false);//设置Excel中的边框
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
cellStyle.setTopBorderColor(HSSFColor.BLACK.index);returncellStyle;
}
}