`
ningwuyu
  • 浏览: 47859 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

关于POI合并单元格后加边框问题

阅读更多
最近由于项目需要用到了POI来生成Excel表格,遇到单元格合并以后怎么加边框,老是解决不了,特意上来请教一下
在网上找了一堆,都不行。
自己写了一个笨方法,可以实现列合并加边框,但是行合并就不行了,方法如下:
Java代码


Java代码
/**  
     * 合并单元格加边框  水平  
     * @param sheet  
     * @param region  
     * @param cs  
     */    
    public static void setCellBorder(int start, int end, HSSFRow row,    HSSFCellStyle style) {    
        for(int i=start;i<=end;i++){       
            HSSFCell cell = row.createCell(i);       
            cell.setCellValue("");       
            cell.setCellStyle(style);       
        }    
    }  

/**
     * 合并单元格加边框  水平
     * @param sheet
     * @param region
     * @param cs
     */ 
    public static void setCellBorder(int start, int end, HSSFRow row,    HSSFCellStyle style) { 
        for(int i=start;i<=end;i++){    
            HSSFCell cell = row.createCell(i);    
            cell.setCellValue("");    
            cell.setCellStyle(style);    
        } 
    }  

参数说明:start和并的第二列,end为合并的最后一列,row就为当前行,style样式(里面有设置边框)
例如从0-10列合并: ExcelUtil.setCellBorder(2,10,row,style);   这样可以设置

关于合并行设置也写了一个,但是不行,方法如下:
Java代码


Java代码
/**  
     * 合并单元格加边框  垂直  
     * @param sheet  
     * @param region  
     * @param cs  
     */    
    public static void setCellBorder(int start, int end, int col, HSSFSheet sheet, HSSFCellStyle style) {    
        for(int i=start;i<=end;i++){       
            HSSFRow row  = ExcelUtil.createRow(sheet, start, (short)0);    
            HSSFCell cell = row.createCell(col);       
            cell.setCellValue("");       
            cell.setCellStyle(style);       
        }    
    } 

/**
     * 合并单元格加边框  垂直
     * @param sheet
     * @param region
     * @param cs
     */ 
    public static void setCellBorder(int start, int end, int col, HSSFSheet sheet, HSSFCellStyle style) { 
        for(int i=start;i<=end;i++){    
            HSSFRow row  = ExcelUtil.createRow(sheet, start, (short)0); 
            HSSFCell cell = row.createCell(col);    
            cell.setCellValue("");    
            cell.setCellStyle(style);    
        } 
    }  
  参数说明:start和并的第二行,end为合并的最后一行,col为哪一列,sheet就是当前表格对象,style样式(里面有设置边框)

  下面是调用代码:
Java代码


Java代码
//第二行 制表时间    
        HSSFRow rowCreateTime = ExcelUtil.createRow(sheet, 1, (short)400);    
        String time = new SimpleDateFormat("yyyy年MM月dd日").format(new Date());    
            
        ExcelUtil.createCell(sheet, rowCreateTime, 0, styleTime,     
                new Region(1,(short)0,1,(short)27), "制表时间:"+time,null);    
        //合并后单元格设置边框    
        ExcelUtil.setCellBorder(1, 27, rowCreateTime, styleTime);    
            
        //第三行 目录    
        HSSFRow rowMenu  = ExcelUtil.createRow(sheet, 2, (short)450);    
        HSSFRow rowMenu1 = ExcelUtil.createRow(sheet, 3, (short)450);    
        //单位    
        ExcelUtil.createCell(sheet, rowMenu, 0, style,    
                new Region(2,(short)0,3,(short)0),"单位",4000);    
        ExcelUtil.setCellBorder(3, 3, 0, sheet, style);    
            
        //设备型号    
        ExcelUtil.createCell(sheet, rowMenu, 1, style,    
                new Region(2,(short)1,3,(short)1),"设备型号",2500);    
        ExcelUtil.setCellBorder(3, 3, 1, sheet, style);    
            
        //全年1-12月维修情况    
        ExcelUtil.createCell(sheet, rowMenu, 2, style,    
                new Region(2,(short)2,2,(short)13),"全年1-12月维修情况",null);    
        //合计    
        ExcelUtil.createCell(sheet, rowMenu, 14, style,    
                new Region(2,(short)14,3,(short)14),"合计",1200);    
        ExcelUtil.setCellBorder(3, 3, 14, sheet, style);    
            
        //全年1-12月维护情况    
        ExcelUtil.createCell(sheet, rowMenu, 15, style,    
                new Region(2,(short)15,2,(short)26),"全年1-12月维修情况",null);    
        //合计    
        ExcelUtil.createCell(sheet, rowMenu, 27, style,    
                new Region(2,(short)27,3,(short)27),"合计",1200);    
        ExcelUtil.setCellBorder(3, 3, 27, sheet, style);   
分享到:
评论

相关推荐

    POI操作Excel合并单元格边框问题解决方法

    POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法

    关于java EXCEL poi 合并后无法显示或无法设置边框问题

    关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!

    用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法

    本篇文章小编为大家介绍,用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法。需要的朋友参考下

    POI实战总结

    10、添加区域,合并单元格 11、保存Excel文件 12、根据单元格不同属性返回字符串数值 13、常用单元格边框格式 14、设置字体和内容位置 15、插入图片 16、调整工作表位置 17、设置打印区域 18、标注脚注 19...

    POI中设置Excel单元格格式.docx

    本文将详细介绍如何使用 POI 库设置 Excel 单元格的格式,包括设置背景色、边框、居中、字体、列宽、自动换行和合并单元格等。 一、设置背景色 在 POI 中,可以使用 `HSSFCellStyle` 对象设置单元格的背景色。首先...

    POI实战 .pdf

    5.2 单元格边框样式 40 5.3 单元格背景色 41 5.4 单元格字体格式 41 5.5 单元格对齐方式 42 5.6 单元格数字格式化 45 5.7单元格宽度与高度 46 5.8 合并单元格样式 47 5.9 Excel样式实例 48 6.总结 52 7.附录 53

    POI实战-java开发excel详解

    5.2 单元格边框样式 40 5.3 单元格背景色 41 5.4 单元格字体格式 41 5.5 单元格对齐方式 42 5.6 单元格数字格式化 45 5.7单元格宽度与高度 46 5.8 合并单元格样式 47 5.9 Excel样式实例 48 6.总结 52 7.附录 53

    poi excel转html

    poi提供了excel转html的代码,但是吧,有好多问题。当有合并单元格时边框获取不到,单元格内的字体样式也转换不了,现在对poi提供的Tohtml.java做了一些修改,修复了这些问题,记录下,以备之后用到

    java导出数据表头合并第一行表头第二行表头

    * var dynCondVal = startDate + "," + endDate; var gauge_head1="日期@交易金额汇总@渠道@交易类型";//表头1 要合并的格表头描述字段 已@分割 注意 这里...//合并 要合并的格 1不用合并 2表示合并二格 否则上下合并

    POI实战-java开发excel.rar_Excel写入_JAVA 处理excel_POI_java 写入excel

    POI处理excel文件,主要包括Excel的读取、写入,各种数据格式处理、单元格合并、注释、下拉列表及单元格的边框、背景色、宽度调整等。

    POIDemo:这是 POIDemo,导入导出 Excel 的一些程序

    #POIDemo ##代码不能停留在看的阶段,...POIDemo8.java 设置工作簿单元格边框样式 利用cellStyle.setBorderXXX POIDemo9.java 单元格合并 POIDemo10.java 字体测试 POIDemo11.java 测试读取与重写单元格 POIDemo12.java

    Java调用POI操作excel详解

    Java调用POI操作excel,此篇 POI 讲解相对基础,都是平时我们在开发中用到的功能。主要包括 Excel的读取、写入,各种数据格式处理、单元格合并、注释、下拉列表及单元格的边框、背景色、宽高度调整等。

    easyExcel生成个性化表格(自定义行高,合并,字体,去网格线),前后端分离开发下,返回错误的JSON数据给前端

    easyExcel生成个性化表格(自定义行高,合并,字体,去网格线),前后端分离开发下,返回错误的JSON数据给前端

    C#进行操作Word操作

    C#操作word文档。包括创建、保存、文字、图片、表格、页眉、页脚等。其中表格还包括边框,合并单元格,插入图片。其他操作必须先创建word。代码块都有,具体应用需要修改。

Global site tag (gtag.js) - Google Analytics