码迷,mamicode.com
首页 > 编程语言 > 详细

java动态导出excel合并单元格

时间:2016-07-15 13:16:28      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:

采用的是poi技术

框架式  ssh 使用的是struts1

 

public void outExcel(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {

  你程序需要调用的东西写在这里

try {

   // 第一步,创建一个webbook,对应一个Excel文件

   HSSFWorkbook wb = new HSSFWorkbook();

   // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet   

 HSSFSheet sheet = wb.createSheet("名字");

   // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short  

  HSSFRow row = sheet.createRow((int) 0);

   // 第四步,创建单元格,并设置值表头 设置表头居中   

 HSSFCellStyle style = wb.createCellStyle();    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

// 创建一个居中格式     

  HSSFCell cell = row.createCell((short) 0);   

 cell.setCellValue("其他");  

  cell.setCellStyle(style);  

  cell = row.createCell((short) 1);

   cell.setCellValue("其他取");

 你程序需要调用的东西写在这里

     for (int i = 0; i < list1.size(); i++) {
         for (int p = 0; p < list.size(); p++) {
        if(list1.get(i).equals(list.get(p).getSsqx())){
        TraceLxr sf=new TraceLxr();
        sf.setSsqx(list.get(p).getSsqx());
        sf.setFg(list.get(p).getFg());

       newlist.add(sf);

           }

      }

}

 

 for (int k1 = 0; k1 < newlist.size(); k1++) {
    row = sheet.createRow((int) k1 + 1);
    TraceLxr bgMultiLevel = (TraceLxr) newlist.get(k1);
   
    row.createCell((short) 0).setCellValue(bgMultiLevel.getSsqx());
    row.createCell((short) 1).setCellValue(bgMultiLevel.getFg());

 

 if(k1!=0){        

    if(newlist.get(k1-1).getSsqx().equals(newlist.get(k1).getSsqx())){   

              CellRangeAddress cra=new CellRangeAddress(k1, 1+k1, 0, 0);          

                 //在sheet里增加合并单元格             

        sheet.addMergedRegion(cra);     

        }            

     }   

 }       

 response.reset();   

 response.setContentType("application/vnd.ms-excel;charset=utf-8");   

 response.setHeader("Content-Disposition", "attachment;filename="      + new String(        ("exportExcel".toString() + ".xls").getBytes(),        "iso-8859-1"));  

  OutputStream os = response.getOutputStream();

   wb.write(os);    os.close();       

  }catch (IOException e) {  

  // TODO Auto-generated catch block   

 e.printStackTrace();

  }

 }

 

到这里动态合并就好了 里面调用的方法根据自己的来写

 

java动态导出excel合并单元格

标签:

原文地址:http://www.cnblogs.com/liuy1/p/5672898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!