天天看點

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行的合并取消,這樣就可以了。