对于合并单元格的内容和备注等信息,只有通过合并前左上角的单元格坐标才能获得,所以本文介绍怎样获得合并单元格相关信息。
1.判定是否是合并单元格
之前提到了判断一个单元格是否是合并单元格的方法,这里再叙述一遍。
先获得一个单元格实例:
Range oCurCell;//
定义的当前单元格实例
//
获得接口指针
oCurCell
.AttachDispatch(m_oCurrRange.GetItem(COleVariant( (long)i),COleVariant( (long)j) ).pdispVal,TRUE);
下面是判断是否是单元格的方法:
VARIANTvar;
var=oCurCell.GetMergeCells();
if(var.boolVal== -1 )
{
//
是合并的单元格
}
elseif(var.boolVal== 0 )
{
//
不是合并的单元格
}
在合并单元格的任意子单元格中都可以进行这种判断。
2.获得合并的行数和列数
如果是合并单元格,获得合并的行数和列数
//
是合并的单元格
RangerangeMerge;
rangeMerge.AttachDispatch(oCurCell.GetMergeArea(),TRUE);
//
合并行数
rangeMerge.AttachDispatch(rangeMerge.GetRows(),TRUE);
intnRow=rangeMerge.GetCount();
//
合并列数
rangeMerge.AttachDispatch(rangeMerge.GetColumns(),TRUE);
intnColumn=rangeMerge.GetCount();
3.获得合并单元格左上角的坐标
intnStartRow=rangeMerge.GetRow();
intnstartColumn=rangeMerge.GetColumn();
这样就可以获得合并单元格的内容和备注了。
4.合并单元格的宽度和高度
VARIANTvarWidth=rangeMerge.GetColumnWidth();
VARIANTvarHeight=rangeMerge.GetRowHeight();
这两个函数不仅仅能获得普通的单元格的宽度和高度,合并单元格也可以。如果获得不了,可能需要使用合并单元格左上角的坐标。