做项目用到了合并单元格,本以为是件简单的事情,几句话搞定。
上网搜了下方法,百度排名第一的结果,立马跳出来。写得也很清楚
原文如下:
这里就介绍一个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));
确始终合并不成功。合并的效果如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1kDNxQTOyATM4IjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
总是没有合并,找了半天原因。
原因,因为模板中的索引0行已经是合并的,再次程序合并的时候 并没有如想象的那样重新按照参数合并。
解决办法:修改模板,把0行的合并取消,这样就可以了。