天天看点

C#合并单元格的坑,AddMergedRegion

做项目用到了合并单元格,本以为是件简单的事情,几句话搞定。

上网搜了下方法,百度排名第一的结果,立马跳出来。写得也很清楚

原文如下:

这里就介绍一个DLL文件NPOI.dll的合并单元格。

假如我们需要合并第一行和第二行:

代码:sheet.AddMergedRegion(new CellRangeAddress(0, 1, 0, 0));

CellRangeAddress有4个参数:起始行号,终止行号, 起始列号,终止列号

原文链接:https://blog.csdn.net/lilinoscar/article/details/51967594

看好,这里的参数解释是错误的。

CellRangeAddress有4个参数:起始行号,终止行号, 起始列号,终止列号 

正确的应该是:起始行号,起始列号,终止行号, 终止列号 

还有一个自己的坑,因为是从模板中取展示的格式,需要动态增加列,而增加列后,第一行的标题需要动态合并,

由于列是动态增加的,所以要在程序中合并一下单元格:

写法如下:

((HSSFSheet)sheet).AddMergedRegion(new NPOI.SS.Util.Region(0, 0,0, newColCount - 1)); 

确始终合并不成功。合并的效果如下:

C#合并单元格的坑,AddMergedRegion

总是没有合并,找了半天原因。

原因,因为模板中的索引0行已经是合并的,再次程序合并的时候 并没有如想象的那样重新按照参数合并。

解决办法:修改模板,把0行的合并取消,这样就可以了。