POI实现Excel的导出

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);
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值