Java excel导出支持2007以上版本

一.创建工作薄
XSSFWorkbook wb= new XSSFWorkbook();

 二.创建sheet页(如果需要同时导出多个sheet也内容,则如下)

   XSSFSheet sheet1 = createSheet(wb, "数据层");
   XSSFSheet sheet2 = createSheet(wb, "播放层");
   
 2.1      创建createSheet() 作用:设置sheet页标题,文本内容格式等等

  public XSSFSheet createSheet(XSSFWorkbook wb,String sheetName){
      wb.createSheet(sheetName);
     //设置sheet页文本居中
     sheet.setHorizontallyCenter(true);
     //是否设置自适应界面(有的内容会挤到一张纸上)
      sheet.setFitToPage(false);
      //导出excel,打开excel后会自动执行公式
       sheet.setForceFormulaRecalculation(true);
     //设置打印方式
     XSSFPrintSetup ps = sheet.getPrintSetup();
     ps.setLandscape(true); // true:横向打印,false:竖向打印 ,因为列数较多,推荐在打印时横向打印
     ps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); //打印尺寸大小设置为A4纸大小
     return sheet; }
 3.// 设置字体的样式
     XSSFFont    font =  wb.cteateFont();
   font.setFontName("宋体");
   //白底黑字
    font.setColor(IndexedColors.WHITE.getIndex());
    //通过数据库查询得到一个数据集   list
    
         genExcel(wb,sheet,list);  ( 主要作用:用来定义样式,得到结果)
  OutputStream os=null;
  HttpServletResponse response=null;
        try{
         response=ServletActionContext.getResponse();
         os=response.getOutputStream();
         response.reset();
         //设置响应流
         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
         String filename="java"+new date(new SimpleFormat("yyyy-MM-dd"))+"xlsx";
         filename=URLEncoder.encode(filename,"utf-8");
         response.setHeader("content-disposition","filename=" + fileName);
         wb.write(os);
         catch (Exception e) {
}finally{
    try {
        os.flush();
        os.close();
    } catch (Exception e2) {
    }
        }
    }
public  void genExcel(XSSFWorkbook workbook, XSSFSheet sheet,List list) {
      XSSFCellStyle headStyle = haveHeadStyle(workbook); //创建表头样式
     XSSFCellStyle contextStyle = haveNormalStyle(workbook);//创建文本样式
     XSSFCellStyle footStyle = haveRemarkStyle(workbook);//创建备注样式
     XSSFCellStyle pinkStyle = haveExceptionStyle(workbook);//创建异常样式
     //设置标题位置   合并单元格 new CellRangeAddress
      CellRangeAddress cra = new CellRangeAddress(
            list.size() + 1, //first row
            list.size() + 2, //last row
            0,
            column_title.length-1
    );
    sheet.addMergedRegion(cra);
     // 使用RegionUtil类为合并后的单元格添加边框    为整个表格添加边框
    //下边框
    RegionUtil.setBorderBottom(6, cra, sheet, workbook);
   //左边框
    RegionUtil.setBorderLeft(6, cra, sheet, workbook);
    //上边框
    RegionUtil.setBorderTop(6, cra, sheet, workbook);
    //右边框
    RegionUtil.setBorderRight(6, cra, sheet, workbook);
//循环表头内容到表格中
    XSSFRow row    =     sheet.createRow(0);
    XSSFCell cell=null;
    for(int i=0;i

你可能感兴趣的:(Java excel导出支持2007以上版本)