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