操作word文档书签在指定位置添加信息
我们经常会遇到在word中指定的位置添加内容,在这里我们可以通过操作word书签的方式在word文档中指定的添加信息。
1.首先我们需要添加MSWORD.OLB,这里我们通过在头文件中进行添加
2. 打开一个word文档,定位书签的位置,并添加指定的内容
BOOL BookMarks(CString sAffixPath,CString sTitle)
{
MSWord::_ApplicationPtr pWdApplicationPtr;
MSWord::_DocumentPtr pWdDocumentPtr;
MSWord::RangePtr pWdRangePtr;
MSWord::BookmarksPtr pWdBookmarksPtr;
MSWord::BookmarkPtr pWdBookmarkPtr;
CString sFileName = sAffixPath; // 打开文件路径
COleVariant sourcePath = sFileName;
COleVariant vTrue((short)TRUE);
COleVariant vFalse((short)FALSE);
COleVariant vZero((short)0);
COleVariant vOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CoInitialize(NULL); // 单线程方式创建
HRESULT hResult = pWdApplicationPtr.CreateInstance("Word.Application");
if (hResult != S_OK)
{
CoUninitialize();
return NULL;
}
pWdDocumentPtr = pWdApplicationPtr->Documents->Open(sourcePath,
vTrue, // Confirm Conversion.
vFalse, // ReadOnly.
vFalse, // AddToRecentFiles.
vOptional, // PasswordDocument.
vOptional, // PasswordTemplate.
vOptional, // Revert.
vOptional, // WritePasswordDocument.
vOptional, // WritePasswordTemplate.
vOptional, // Format. // Last argument for Word 97
vOptional, // Encoding // New for Word 2000/2002
vFalse, // visible
vOptional, // openAndRepair
vZero, // docDirection
vOptional, // NoEncodingDialog
vOptional);
if(pWdDocumentPtr == NULL)
{
CoUninitialize();
return FALSE;
}
pWdBookmarksPtr = pWdDocumentPtr2->Bookmarks;
CString FindW = _T("标题");// 标题标签
COleVariant cInsert(FindW);
_bstr_t brFindW = (_bstr_t)FindW;
if (!(pWdBookmarksPtr->Exists(brFindW)))
{
AfxMessageBox(_T("没有标题标签"),MB_OKCANCEL);
return FALSE;
}
else
{
COleVariant cInsert(FindW);
pWdBookmarkPtr = pWdBookmarksPtr->Item(&cInsert);
pWdRangePtr = pWdBookmarkPtr->GetRange();
pWdRangePtr->PutText((_bstr_t)sTitle);
AfxMessageBox(_T("标题写入完成"),MB_OKCANCEL);
}
if(pWdDocumentPtr != NULL)
{
pWdDocumentPtr->Close();
pWdDocumentPtr = NULL;
}
if(pWdApplicationPtr != NULL)
{
pWdApplicationPtr->Quit();
pWdApplicationPtr = NULL;
}
return TRUE;
}
3. 在word文档中添加书签,进行测试
添加名字为"标题"的书签
在标题处添加"123"的标题
4.
在这我是对固定的书签进行添加也可以修改成通过传参的方式将书签名字传递进行修改。