通过NPOI将单元格B2-C3进行单元格合并,并添加边框。一开始我的写法是这样的:

        static void Main(string[] args){HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = workbook.CreateSheet("Sheet1") as HSSFSheet;HSSFRow dataRow = sheet.CreateRow(1) as HSSFRow;dataRow = sheet.CreateRow(1) as HSSFRow;CellRangeAddress region = new CellRangeAddress(1, 2, 1, 2);sheet.AddMergedRegion(region);ICell cell = dataRow.CreateCell(1);cell.SetCellValue("test");ICellStyle style = workbook.CreateCellStyle();style.BorderBottom = BorderStyle.Thin;style.BorderLeft = BorderStyle.Thin;style.BorderRight = BorderStyle.Thin;style.BorderTop = BorderStyle.Thin;style.BottomBorderColor = HSSFColor.Black.Index;style.LeftBorderColor = HSSFColor.Black.Index;style.RightBorderColor = HSSFColor.Black.Index;style.TopBorderColor = HSSFColor.Black.Index;cell.CellStyle = style;using (MemoryStream ms = new MemoryStream()){workbook.Write(ms);ms.Flush();ms.Position = 0;using (FileStream fs = new FileStream("C:\\TestConsole.xls", FileMode.Create, FileAccess.Write)){byte[] data = ms.ToArray();fs.Write(data, 0, data.Length);fs.Flush();}}}

但输出的结果却是这样的:

由此可见NPOI还是认为我Create的Cell是B2,但由于合并后,右侧和下部边框不存在了,产生了以上的结果。

我的解决方案是对合并区域的所有单元格遍历设置边框,代码如下

        static void Main(string[] args){HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = workbook.CreateSheet("Sheet1") as HSSFSheet;HSSFRow dataRow = sheet.CreateRow(1) as HSSFRow;dataRow = sheet.CreateRow(1) as HSSFRow;CellRangeAddress region = new CellRangeAddress(1, 2, 1, 2);sheet.AddMergedRegion(region);ICell cell = dataRow.CreateCell(1);cell.SetCellValue("test");ICellStyle style = workbook.CreateCellStyle();style.BorderBottom = BorderStyle.Thin;style.BorderLeft = BorderStyle.Thin;style.BorderRight = BorderStyle.Thin;style.BorderTop = BorderStyle.Thin;style.BottomBorderColor = HSSFColor.Black.Index;style.LeftBorderColor = HSSFColor.Black.Index;style.RightBorderColor = HSSFColor.Black.Index;style.TopBorderColor = HSSFColor.Black.Index;//cell.CellStyle = style;for (int i = region.FirstRow; i <= region.LastRow; i++){IRow row = HSSFCellUtil.GetRow(i, sheet);for (int j = region.FirstColumn; j <= region.LastColumn; j++){ICell singleCell = HSSFCellUtil.GetCell(row, (short)j);singleCell.CellStyle = style;}}using (MemoryStream ms = new MemoryStream()){workbook.Write(ms);ms.Flush();ms.Position = 0;using (FileStream fs = new FileStream("C:\\TestConsole.xls", FileMode.Create, FileAccess.Write)){byte[] data = ms.ToArray();fs.Write(data, 0, data.Length);fs.Flush();}}}

检查结果:

大功告成。

NPOI合并单元格后的边框设置相关推荐

  1. java通过poi生成excel表格(自适应列宽、合并单元格后的边框添加)

    具体java通过POI读写Excel的基本使用方法可参考: POI读写Excel的基本使用 1.项目导入依赖: <!--xls--> <dependency><group ...

  2. NPOI合并单元格后边框显示不正确?

    方案一: 这个方法能解决:SetEnclosedBorderOfRegion() //merged cells on mutiple rows CellRangeAddress region = ne ...

  3. java导出excel 边框不全_POI导出excel,合并单元格后没有边框

    导出的excel合并单元格有两种方法: 第一种: sheet.addMergedRegion(new CellRangeAddress(开始行, 结束行, 开始列, 结束列)); 这样就可以合并单元格 ...

  4. java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示

    用户需要导出自定义表格,其中合并单元格样式遇到的问题,合并后只显示第一行第一列的边框,其他边框不显示,于是遍查百度,寻到一点思路 ①了解Excel绘制原理 ②了解绘制Excel顺序 ③绘制Excel单 ...

  5. 关于POI合并单元格后加边框问题,请大家拍砖

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

  6. html合并单元格怎么把字竖着,电脑excel单元格中文字如何在合并单元格后竖排显示...

    电脑excel单元格中文字如何在合并单元格后竖排显示 excel软件是我们现在经常使用的数据处理工具之一,接下来小编就教大家怎样在软件中设置合并单元格之后竖排显示文字. 具体如下: 1. 首先我们需要 ...

  7. 合并单元格后打字换行_Excel合并单元格后如何换行

    在使用Excel表格编辑文字内容时,有时候出会出字数太多,无法全部显示在一个单元格内,这样就不便于快速查看完整的数据资料,那在Excel合并单元格后要如何换行呢? 接下来,小编跟大家讲解操作方法,新建 ...

  8. html 合并单元格后居中,excel批量合并单元居中,还在手工点合并后居中吗

    很多朋友对于列中相同的内容,都会手工点击菜单栏上的合并后居中,这样手工操作的方式,对数据量不是很大的列,操作没有任何问题,但对于列中数据比较多的情况,如果还是先选中相同的内容,然后再进行合并后居中,这 ...

  9. 解决POI合并单元格后边框不显示问题

    我这里用的方法可能比较笨,就是合并后其间的每个单元格都设置同样的单元格样式,便可以解决这个问题了,如果大家有更简单更好的方法,可以告诉一下,一起学习. //定义Excel文档对象 XSSFWorkbo ...

最新文章

  1. XDOC Office Server 开源了,Office文档完美转换为PDF
  2. 【poj解题】1308
  3. 一位产品总监打算这样管国家:首先得让大家交得起税。
  4. QGLViewer编译过程
  5. python去重复记录_Python列表去重复项的N种方法(实例代码)
  6. 关于Linux路由表的route命令
  7. 广东职业教育信息化研究会2019年会暨区块链专题研讨会
  8. 漫画:什么是区块链?
  9. 《编译与反编译技术实战》——导读
  10. 如何让Android横竖屏切换时不销毁当前activity
  11. 帆软超级链接对象、插入子报表、网页框传参的个人使用心得
  12. 线性时间选择(C++):求第k小的数
  13. vue仿微博评论回复_js模拟回帖/微博评论功能案例
  14. ks检验 matlab,KS检验
  15. Failed to obtain JDBC Connection
  16. 诺基亚社招C++面试记录
  17. jQuery 实现五星好评
  18. 用Python如何开发Excel宏脚本?新手必学
  19. 云计算的定义、云计算系统的架构组成、云计算的应用和云计算的问题
  20. 【C#懒蛋编程——5分钟经验分享】01逆序遍历删除,防止迭代器失效

热门文章

  1. 乌云 漏洞 apkbus api
  2. springMVC上传图片并压缩
  3. 光通信综合测试仪 光缆施工维护单位用的必要仪器--TFN HC2800
  4. bzoj1921 CTSC2010 jewelry
  5. linux记录wifi流量,统计wifi流量的脚本
  6. 回波损耗、S11、VSWR、反射系数
  7. Ingress Lab(Ingress-Nginx)
  8. 联邦学习在腾讯微视广告投放中的实践
  9. Centos7安装配置Python-3.7.2
  10. 宝宝拉肚子治疗全面总结