`
ningwuyu
  • 浏览: 48937 次
  • 性别: 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天!

    java excel poi合并单元格

    在Excel中,合并单元格意味着多个相邻的单元格被合并成一个大的单元格,其内容占据合并后的所有空间。在Java中使用Apache POI进行操作,我们需要使用`XSSFWorkbook`(对于.xlsx文件)或`HSSFWorkbook`(对于.xls文件...

    使用XSSFWorkbook自由合并单元格并设置单元格样式

    本主题将深入探讨如何利用Java的Apache POI库中的XSSFWorkbook类来实现自由合并单元格,并设置单元格样式。Apache POI是一个流行的API,它允许开发者读取、创建和修改Microsoft Office格式的文件,包括Excel。 首先...

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

    在本文中,我们将深入探讨如何使用NPOI创建Excel文件,并进行单元格的样式设置,包括合并单元格、设置字体样式、边框以及对齐方式。 首先,创建一个新的Excel工作簿(HSSFWorkbook)是开始操作的基础。以下代码展示...

    导出Excel示例(C++)【设置边框、设置背景色、合并单元格的示例】

    这个示例代码中的"exportExcel"可能是完成上述操作后的可执行程序,运行该程序即可生成具有边框、背景色和合并单元格的Excel文件。通过理解这些知识点,你可以灵活地在C++项目中实现自定义的Excel导出功能。

    JTable合并单元格

    当你需要在`JTable`中实现特定的布局或者展示特殊格式的数据时,可能会遇到需要合并单元格的需求。例如,为了创建一个标题行或列,或者在某些情况下合并具有相同数据的单元格以减少重复,合并单元格就显得尤为重要。...

    POI实战总结

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

    poi操作表格

    描述提到“Android可以操作简单的表格,进行合并单元格等操作”,这表明Apache POI的功能已经扩展到Android平台,使得Android应用也能处理Excel数据,如合并单元格,这是在创建或编辑表格时常见的需求。在Android...

    合并单元格导出数据到excel.rar

    本案例中,"合并单元格导出数据到excel.rar"是一个压缩包,包含了一个Java代码示例,它实现了从数据库查询数据后,利用Apache POI库来生成包含合并单元格的Excel文件。以下是关于这个主题的详细知识点: 1. **Java...

    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对于excel表格的操作数据读取和写入详细解释

    在实际应用中,可能还需要处理更复杂的情况,例如合并单元格、读取数据、设置条件格式、处理图表和公式等。Apache POI 提供了丰富的功能来支持这些需求。如果你需要进一步的代码示例或者导出优化的建议,可以寻求...

    poi生成excel报表合并列

    在这个场景中,我们关注的是如何使用POI来生成具有合并列的Excel报表。生成这样的报表时,通常是为了呈现层次化的数据,例如组织结构、产品分类或者地区分层等。下面将详细介绍如何利用Apache POI实现这一功能。 ...

    poi导出复杂excel

    你需要指定起始和结束的单元格坐标,POI会将这些单元格合并为一个大的单元格。 在实际应用中,你需要先创建模板,定义好表头的结构,然后根据业务数据动态填充内容。这通常涉及到对单元格样式(字体、颜色、边框等...

    poi多表头 excel导出

    在Java编程领域,"poi多表头 excel导出"是一个常见的需求,特别是在数据...同时,理解Excel的内部工作原理,如行和列的索引是从0开始的,合并单元格后其他单元格的数据会被隐藏,这些都对编写正确无误的代码至关重要。

    poi将word转换成html、样式 表格 图片处理

    Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。在本案例中,我们关注的是如何使用Apache POI将Word文档转换为HTML格式,并且保持原有的样式、表格...

Global site tag (gtag.js) - Google Analytics