我添加了一个IsMergeRange函数,代码如下:
int CExcelCell::IsMergeRange(CRange range, bool col_row)
{
COleVariant vResult;
vResult=range.get_MergeCells();
if(vResult.boolVal!=0)
{
long x, y;
m_ecRange.AttachDispatch(range.get_Rows(),true);
x=m_ecRange.get_Count();
m_ecRange.AttachDispatch(range.get_Columns(),true);
y=m_ecRange.get_Count();
if(col_row)
return y;
else return x;
}
return 0;
}
此函数作用是判断指定单元格是否为合并单元格,是则按要求返回该合并单元格的行或者列,我在模板text.xlsx中,将A1到A5合并。然后引用函数IsMergeRange(getRange(_T("A1")), false),但是程序返回的却是1行,正常应该是5啊,查找CSDN和百度知道的相关问题后仍然未能确定问题原因,我使用的是OFFICE 2010,求各位指点!(getRange()函数返回指定单元格,亲测绝对没问题)
下断点,x=1,y=1。是A1单个单元格的行和列,为什么不是获取到合并单元格的行和列呢?