public static void export(String filename,HttpServletResponse response){
// 创建excel WORKBOOK和SHEET
HSSFWorkbook wb = new HSSFWorkbook();
//设置边框
HSSFCellStyle cellStyle= wb.createCellStyle();
cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
//设置边框加粗带边框带颜色
HSSFCellStyle cellStyle1 = wb.createCellStyle();
HSSFFont cellfont1 = wb.createFont();
cellfont1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//字体加粗
cellfont1.setFontHeightInPoints((short) 14); //设置字体大小
cellStyle1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//设置垂直居中
cellStyle1.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle1.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle1.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle1.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cellStyle1.setFillForegroundColor((short) 24);// 设置背景色
cellStyle1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
cellStyle1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle1.setFont(cellfont1);
HSSFSheet sheet = wb.createSheet("数据导出");
wb.setSheetName(wb.getSheetIndex("数据导出"), "数据导出",
HSSFWorkbook.ENCODING_UTF_16);
sheet.setDefaultColumnWidth(Short.parseShort("40"));
HSSFRow row = null;
row = sheet.createRow(0);
// 生成表头
genTableCell(cellStyle1,row,'姓名',(short)0);//抽取的一个公共方法
genTableCell(cellStyle1,row,'年龄’,(short)1);
// 生成excel数据
row = sheet.createRow(1);
genTableCell(cellStyle,row,'张三',(short)0);
genTableCell(cellStyle,row,'24,(short)1);
genTableCell(cellStyle,row,'李四',(short)0);
genTableCell(cellStyle,row,'18,(short)1);
// 输出EXCEL文件
if (filename != null) {
try {
filename=new String((filename).getBytes("gbk"),"iso8859-1");
} catch (UnsupportedEncodingException e) {
}
}
response.setHeader("Content-Type", "Application/vnd.ms-excel");
response.setHeader("Content-Disposition",
"attachment;filename=\"" + filename + "\"");
ServletOutputStream fileOut;
try {
fileOut = response.getOutputStream();
wb.write(fileOut);
fileOut.close();
} catch (IOException e) {
logger.error("Excel写入内存失败!"+e.toString());
throw new RuntimeException("Excel写入内存失败!"+e);
}
}
/**
* 将内容写入指定单元格
* @param cellfont
* @param row
* @param strvalue 单元格内容
* @param i 单元格所在行坐标
*/
private static void genTableCell(HSSFCellStyle cellstyle, HSSFRow row,
String strvalue, short i) {
HSSFCell cell;
cell = row.createCell(i);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(strvalue);
cellstyle.setWrapText(true);
cell.setCellStyle(cellstyle);
}