我自己实验出添加是CRange::AddComment
但获取却没有类似函数,请问大家如何获取单元格中的批注信息。
4 个解决方案
#1
Excel::Comments comments;
Excel::Comment comment;
Excel::Range range;
comments.DetachDispatch();
comments.AttachDispatch(m_sheet.GetComments(),0);
if(nIndex<1 || nIndex>comments.GetCount()) return FALSE;
comment.DetachDispatch();
comment.AttachDispatch(comments.Item(nIndex),0);
range.DetachDispatch();
range.AttachDispatch(comment.GetParent(),0);
CString sValue;
sValue=comment.Text(vtMissing,vtMissing,vtMissing);
range.DetachDispatch();
range.ReleaseDispatch();
comment.DetachDispatch();
comment.ReleaseDispatch();
comments.DetachDispatch();
comments.ReleaseDispatch();
Excel::Comment comment;
Excel::Range range;
comments.DetachDispatch();
comments.AttachDispatch(m_sheet.GetComments(),0);
if(nIndex<1 || nIndex>comments.GetCount()) return FALSE;
comment.DetachDispatch();
comment.AttachDispatch(comments.Item(nIndex),0);
range.DetachDispatch();
range.AttachDispatch(comment.GetParent(),0);
CString sValue;
sValue=comment.Text(vtMissing,vtMissing,vtMissing);
range.DetachDispatch();
range.ReleaseDispatch();
comment.DetachDispatch();
comment.ReleaseDispatch();
comments.DetachDispatch();
comments.ReleaseDispatch();
#2
使用_Worksheet 的Comments方法得到Comments类型的集合
#3
这个方法如何获取单元格内的批注呢?意思是5行8列没有批注,则返回""
我测试了下,comment.AttachDispatch(comments.Item(nIndex),0);中的nIndex是按顺序来的
#4
还有,我读了批注以后为什么无法完全释放资源,即进程无法关闭,只读内容不读批注可以完全释放,加上comment.ReleaseDispatch();也不行
#1
Excel::Comments comments;
Excel::Comment comment;
Excel::Range range;
comments.DetachDispatch();
comments.AttachDispatch(m_sheet.GetComments(),0);
if(nIndex<1 || nIndex>comments.GetCount()) return FALSE;
comment.DetachDispatch();
comment.AttachDispatch(comments.Item(nIndex),0);
range.DetachDispatch();
range.AttachDispatch(comment.GetParent(),0);
CString sValue;
sValue=comment.Text(vtMissing,vtMissing,vtMissing);
range.DetachDispatch();
range.ReleaseDispatch();
comment.DetachDispatch();
comment.ReleaseDispatch();
comments.DetachDispatch();
comments.ReleaseDispatch();
Excel::Comment comment;
Excel::Range range;
comments.DetachDispatch();
comments.AttachDispatch(m_sheet.GetComments(),0);
if(nIndex<1 || nIndex>comments.GetCount()) return FALSE;
comment.DetachDispatch();
comment.AttachDispatch(comments.Item(nIndex),0);
range.DetachDispatch();
range.AttachDispatch(comment.GetParent(),0);
CString sValue;
sValue=comment.Text(vtMissing,vtMissing,vtMissing);
range.DetachDispatch();
range.ReleaseDispatch();
comment.DetachDispatch();
comment.ReleaseDispatch();
comments.DetachDispatch();
comments.ReleaseDispatch();
#2
使用_Worksheet 的Comments方法得到Comments类型的集合
#3
这个方法如何获取单元格内的批注呢?意思是5行8列没有批注,则返回""
我测试了下,comment.AttachDispatch(comments.Item(nIndex),0);中的nIndex是按顺序来的
#4
还有,我读了批注以后为什么无法完全释放资源,即进程无法关闭,只读内容不读批注可以完全释放,加上comment.ReleaseDispatch();也不行