C#利用书签定位到Word文档的指定位置 (四种方法)

首先在Word文档中,插入一个新的书签,并命名(假设建了一个名为”BOOKMARKNAME”的书签),然后使用C#操作Word:


using MSWord = Microsoft.Office.Interop.Word;
//引用命名空间
private MSWord.Application wordApp;
//Word应用程序变量
private MSWord.Document wordDoc;
//Word文档变量
private Object Nothing = Missing.Value;
//初始化
wordApp = new MSWord.ApplicationClass();
wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
// 打开Word
object FileName = strPath;
object readOnly = false;
object isVisible = true;
wordDoc = wordApp.Documents.Open(ref FileName, ref Nothing, ref readOnly,
    ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
    ref Nothing, ref Nothing, ref Nothing, ref isVisible, ref Nothing,
    ref Nothing, ref Nothing, ref Nothing);
object bk = "BOOKMARKNAME";

第一种:使用Word应用程序变量,使用这种方法,wordApp.Documents.Open()中确保isVisible的值为true


if (wordApp.ActiveDocument.Bookmarks.Exists("BOOKMARKNAME")) 
{
    wordApp.ActiveDocument.Bookmarks.get_Item(ref bk).Select();
    wordApp.Selection.TypeText("insert text");
    // 插入文本
}

第二种:使用Word文档变量


if (wordDoc.Bookmarks.Exists("BOOKMARKNAME"))
{
    wordDoc.Bookmarks.get_Item(ref bk).Range.Text = "insert text"; // 插入文本
}

第三种:使用Goto函数,跳转到指定书签


object BookMarkName = "BOOKMARKNAME";
object what = MSWord.WdGoToItem.wdGoToBookmark;
wordDoc.ActiveWindow.Selection.GoTo(ref what, ref Nothing, ref Nothing, ref BookMarkName);
wordDoc.ActiveWindow.Selection.TypeText("Hello!");

第四种:使用循环遍历找到指定的书签,然后进行赋值


Word.Bookmark objRet = null;
Word.Range objRange = null;
string strFindText = "bookmarkname";
string strRepText="Hello!";
foreach(Word.Bookmark objBK in wordDoc.Bookmarks) {
    if (objBK.Name.ToLower() == strFindText) {
        objRet = objBK;
        break;
    }
}
If(objRet != null) {
    objRange = objBK.Range;
    objRange.Text = strRepText;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值