HSSFWorkBooK用法 更新中...

  1. public  ActionResult excelPrint() {   
  2.     HSSFWorkbook workbook =  new  HSSFWorkbook(); // 创建一个Excel文件   
  3.     HSSFSheet sheet = workbook.createSheet(); // 创建一个Excel的Sheet   
  4.     sheet.createFreezePane( 1 3 ); // 冻结   
  5.      // 设置列宽   
  6.     sheet.setColumnWidth( 0 1000 );   
  7.     sheet.setColumnWidth( 1 3500 );   
  8.     sheet.setColumnWidth( 2 3500 );   
  9.     sheet.setColumnWidth( 3 6500 );   
  10.     sheet.setColumnWidth( 4 6500 );   
  11.     sheet.setColumnWidth( 5 6500 );   
  12.     sheet.setColumnWidth( 6 6500 );   
  13.     sheet.setColumnWidth( 7 2500 );   
  14.      // Sheet样式   
  15.     HSSFCellStyle sheetStyle = workbook.createCellStyle();   
  16.      // 背景色的设定   
  17.     sheetStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);   
  18.      // 前景色的设定   
  19.     sheetStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);   
  20.      // 填充模式   
  21.     sheetStyle.setFillPattern(HSSFCellStyle.FINE_DOTS);   
  22.      // 设置列的样式   
  23.      for  ( int  i =  0 ; i <=  14 ; i++) {   
  24.       sheet.setDefaultColumnStyle(( short ) i, sheetStyle);   
  25.     }   
  26.      // 设置字体   
  27.     HSSFFont headfont = workbook.createFont();   
  28.     headfont.setFontName( "黑体" );   
  29.     headfont.setFontHeightInPoints(( short 22 ); // 字体大小   
  30.     headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 加粗   
  31.      // 另一个样式   
  32.     HSSFCellStyle headstyle = workbook.createCellStyle();   
  33.     headstyle.setFont(headfont);   
  34.     headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 左右居中   
  35.     headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 上下居中   
  36.     headstyle.setLocked( true );   
  37.     headstyle.setWrapText( true ); // 自动换行   
  38.      // 另一个字体样式   
  39.     HSSFFont columnHeadFont = workbook.createFont();   
  40.     columnHeadFont.setFontName( "宋体" );   
  41.     columnHeadFont.setFontHeightInPoints(( short 10 );   
  42.     columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   
  43.      // 列头的样式   
  44.     HSSFCellStyle columnHeadStyle = workbook.createCellStyle();   
  45.     columnHeadStyle.setFont(columnHeadFont);   
  46.     columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 左右居中   
  47.     columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 上下居中   
  48.     columnHeadStyle.setLocked( true );   
  49.     columnHeadStyle.setWrapText( true );   
  50.     columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index); // 左边框的颜色   
  51.     columnHeadStyle.setBorderLeft(( short 1 ); // 边框的大小   
  52.     columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index); // 右边框的颜色   
  53.     columnHeadStyle.setBorderRight(( short 1 ); // 边框的大小   
  54.     columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);  // 设置单元格的边框为粗体   
  55.     columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index);  // 设置单元格的边框颜色   
  56.      // 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)   
  57.     columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);   
  58.   
  59.     HSSFFont font = workbook.createFont();   
  60.     font.setFontName( "宋体" );   
  61.     font.setFontHeightInPoints(( short 10 );   
  62.      // 普通单元格样式   
  63.     HSSFCellStyle style = workbook.createCellStyle();   
  64.     style.setFont(font);   
  65.     style.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 左右居中   
  66.     style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP); // 上下居中   
  67.     style.setWrapText( true );   
  68.     style.setLeftBorderColor(HSSFColor.BLACK.index);   
  69.     style.setBorderLeft(( short 1 );   
  70.     style.setRightBorderColor(HSSFColor.BLACK.index);   
  71.     style.setBorderRight(( short 1 );   
  72.     style.setBorderBottom(HSSFCellStyle.BORDER_THIN);  // 设置单元格的边框为粗体   
  73.     style.setBottomBorderColor(HSSFColor.BLACK.index);  // 设置单元格的边框颜色.   
  74.     style.setFillForegroundColor(HSSFColor.WHITE.index); // 设置单元格的背景颜色.   
  75.      // 另一个样式   
  76.     HSSFCellStyle centerstyle = workbook.createCellStyle();   
  77.     centerstyle.setFont(font);   
  78.     centerstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 左右居中   
  79.     centerstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 上下居中   
  80.     centerstyle.setWrapText( true );   
  81.     centerstyle.setLeftBorderColor(HSSFColor.BLACK.index);   
  82.     centerstyle.setBorderLeft(( short 1 );   
  83.     centerstyle.setRightBorderColor(HSSFColor.BLACK.index);   
  84.     centerstyle.setBorderRight(( short 1 );   
  85.     centerstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);  // 设置单元格的边框为粗体   
  86.     centerstyle.setBottomBorderColor(HSSFColor.BLACK.index);  // 设置单元格的边框颜色.   
  87.     centerstyle.setFillForegroundColor(HSSFColor.WHITE.index); // 设置单元格的背景颜色.   
  88.   
  89.      try  {   
  90.        // 创建第一行   
  91.       HSSFRow row0 = sheet.createRow( 0 );   
  92.        // 设置行高   
  93.       row0.setHeight(( short 900 );   
  94.        // 创建第一列   
  95.       HSSFCell cell0 = row0.createCell( 0 );   
  96.       cell0.setCellValue( new  HSSFRichTextString( "中非发展基金投资项目调度会工作落实情况对照表" ));   
  97.       cell0.setCellStyle(headstyle);   
  98.        /**  
  99.        * 合并单元格  
  100.        *    第一个参数:第一个单元格的行数(从0开始)  
  101.        *    第二个参数:第二个单元格的行数(从0开始)  
  102.        *    第三个参数:第一个单元格的列数(从0开始)  
  103.        *    第四个参数:第二个单元格的列数(从0开始)  
  104.        */   
  105.       CellRangeAddress range =  new  CellRangeAddress( 0 0 0 7 );   
  106.       sheet.addMergedRegion(range);   
  107.        // 创建第二行   
  108.       HSSFRow row1 = sheet.createRow( 1 );   
  109.       HSSFCell cell1 = row1.createCell( 0 );   
  110.       cell1.setCellValue( new  HSSFRichTextString( "本次会议时间:2009年8月31日       前次会议时间:2009年8月24日" ));   
  111.       cell1.setCellStyle(centerstyle);   
  112.        // 合并单元格   
  113.       range =  new  CellRangeAddress( 1 2 0 7 );   
  114.       sheet.addMergedRegion(range);   
  115.        // 第三行   
  116.       HSSFRow row2 = sheet.createRow( 3 );   
  117.       row2.setHeight(( short 750 );   
  118.       HSSFCell cell = row2.createCell( 0 );   
  119.       cell.setCellValue( new  HSSFRichTextString( "责任者" ));   
  120.       cell.setCellStyle(columnHeadStyle);   
  121.       cell = row2.createCell( 1 );   
  122.       cell.setCellValue( new  HSSFRichTextString( "成熟度排序" ));   
  123.       cell.setCellStyle(columnHeadStyle);   
  124.       cell = row2.createCell( 2 );   
  125.       cell.setCellValue( new  HSSFRichTextString( "事项" ));   
  126.       cell.setCellStyle(columnHeadStyle);   
  127.       cell = row2.createCell( 3 );   
  128.       cell.setCellValue( new  HSSFRichTextString( "前次会议要求/n/新项目的项目概要" ));   
  129.       cell.setCellStyle(columnHeadStyle);   
  130.       cell = row2.createCell( 4 );   
  131.       cell.setCellValue( new  HSSFRichTextString( "上周工作进展" ));   
  132.       cell.setCellStyle(columnHeadStyle);   
  133.       cell = row2.createCell( 5 );   
  134.       cell.setCellValue( new  HSSFRichTextString( "本周工作计划" ));   
  135.       cell.setCellStyle(columnHeadStyle);   
  136.       cell = row2.createCell( 6 );   
  137.       cell.setCellValue( new  HSSFRichTextString( "问题和建议" ));   
  138.       cell.setCellStyle(columnHeadStyle);   
  139.       cell = row2.createCell( 7 );   
  140.       cell.setCellValue( new  HSSFRichTextString( "备 注" ));   
  141.       cell.setCellStyle(columnHeadStyle);   
  142.        // 访问数据库,得到数据集   
  143.       List<DeitelVO> deitelVOList = getEntityManager().queryDeitelVOList();   
  144.        int  m =  4 ;   
  145.        int  k =  4 ;   
  146.        for  ( int  i =  0 ; i < deitelVOList.size(); i++) {   
  147.         DeitelVO vo = deitelVOList.get(i);   
  148.         String dname = vo.getDname();   
  149.         List<Workinfo> workList = vo.getWorkInfoList();   
  150.         HSSFRow row = sheet.createRow(m);   
  151.         cell = row.createCell( 0 );   
  152.         cell.setCellValue( new  HSSFRichTextString(dname));   
  153.         cell.setCellStyle(centerstyle);   
  154.          // 合并单元格   
  155.         range =  new  CellRangeAddress(m, m + workList.size() -  1 0 0 );   
  156.         sheet.addMergedRegion(range);   
  157.         m = m + workList.size();   
  158.   
  159.          for  ( int  j =  0 ; j < workList.size(); j++) {   
  160.           Workinfo w = workList.get(j);   
  161.            // 遍历数据集创建Excel的行   
  162.           row = sheet.getRow(k + j);   
  163.            if  ( null  == row) {   
  164.             row = sheet.createRow(k + j);   
  165.           }   
  166.           cell = row.createCell( 1 );   
  167.           cell.setCellValue(w.getWnumber());   
  168.           cell.setCellStyle(centerstyle);   
  169.           cell = row.createCell( 2 );   
  170.           cell.setCellValue( new  HSSFRichTextString(w.getWitem()));   
  171.           cell.setCellStyle(style);   
  172.           cell = row.createCell( 3 );   
  173.           cell.setCellValue( new  HSSFRichTextString(w.getWmeting()));   
  174.           cell.setCellStyle(style);   
  175.           cell = row.createCell( 4 );   
  176.           cell.setCellValue( new  HSSFRichTextString(w.getWbweek()));   
  177.           cell.setCellStyle(style);   
  178.           cell = row.createCell( 5 );   
  179.           cell.setCellValue( new  HSSFRichTextString(w.getWtweek()));   
  180.           cell.setCellStyle(style);   
  181.           cell = row.createCell( 6 );   
  182.           cell.setCellValue( new  HSSFRichTextString(w.getWproblem()));   
  183.           cell.setCellStyle(style);   
  184.           cell = row.createCell( 7 );   
  185.           cell.setCellValue( new  HSSFRichTextString(w.getWremark()));   
  186.           cell.setCellStyle(style);   
  187.         }   
  188.         k = k + workList.size();   
  189.       }   
  190.        // 列尾   
  191.        int  footRownumber = sheet.getLastRowNum();   
  192.       HSSFRow footRow = sheet.createRow(footRownumber +  1 );   
  193.       HSSFCell footRowcell = footRow.createCell( 0 );   
  194.       footRowcell.setCellValue( new  HSSFRichTextString( "                    审  定:XXX      审  核:XXX     汇  总:XX" ));   
  195.       footRowcell.setCellStyle(centerstyle);   
  196.       range =  new  CellRangeAddress(footRownumber +  1 , footRownumber +  1 0 7 );   
  197.       sheet.addMergedRegion(range);   
  198.   
  199.       HttpServletResponse response = getResponse();   
  200.       HttpServletRequest request = getRequest();   
  201.       String filename =  "未命名.xls" ; //设置下载时客户端Excel的名称   
  202.        // 请见:http://zmx.javaeye.com/blog/622529   
  203.       filename = Util.encodeFilename(filename, request);   
  204.       response.setContentType( "application/vnd.ms-excel" );   
  205.       response.setHeader( "Content-disposition" "attachment;filename="  + filename);   
  206.       OutputStream ouputStream = response.getOutputStream();   
  207.       workbook.write(ouputStream);   
  208.       ouputStream.flush();   
  209.       ouputStream.close();   
  210.   
  211.     }  catch  (Exception e) {   
  212.       e.printStackTrace();   
  213.     }   
  214.      return   null ;   
  215.   }  

出自:http://zmx.javaeye.com/blog/622536

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值