作者:乔山办公网日期:
返回目录:excel表格制作
合并同一列中相同的单元格?
NPOI的代码不是只能从某行某列合并到某行某列的吗?
public void UniteCells(Microsoft.Office.Interop.Excel.Worksheet ws, int x1, int y1, int x2, int y2)
//合并度单知元道格版权
{
ws.get_Range(ws.Cells[x1, y1], ws.Cells[x2, y2]).Merge(Type.Missing);
}
public void UniteCells(string ws, int x1, int y1, int x2, int y2)
//合并单元格
{
GetSheet(ws).get_Range(GetSheet(ws).Cells[x1, y1], GetSheet(ws).Cells[x2, y2]).Merge(Type.Missing);
}
NPOI 合并单元格需要你提供给他要合并的单元格位置,,,, 所以你要自己写一个方法来判断同一列中哪里相同 哪里需要合并
n行合并,应该是一起合并的,并不是两行两行合并。
要实现,算法上要想一下抄。
确定每组的开始行号跟结束行号,由这两个值来合并
int start=…;//合并开袭始行号
int end=…;//合并结束行号
if(start!=end)//该组开始行号跟结束行号相同时候,该组只有一行,不用合并。不等才合并
{
CellRangeAddress region = new CellRangeAddress(start,end,j,j);
Sheet.AddMergedRegion(region);
}
上面开始行号跟结束行号,就需要在循zhidao环中判断,并设置。
这只是思路,供参考。