【问题标题】:Get Bookmark range获取书签范围
【发布时间】:2018-01-18 09:54:20
【问题描述】:

如何获取 word 文档中每个书签的范围值?我希望它们显示在数据网格中,所以代码是:

int ii = 0;
Object obj;
var orderedBoomarks = WordDocument.Bookmarks.Cast<Bookmark>().OrderBy(d => d.Start).ToList();
foreach(Bookmark bookmark in orderedBoomarks)
{                    
    obj = bookmark.Range;
    dataGridView1.Rows.Add(bookmark.Name.ToString());
    dataGridView1.Rows[ii].Cells[1].Value = obj.ToString();
    ii++;
}

目前,单元格中的结果是“System.__ComObject”。那么,我什至可以得到书签范围的数值吗?

【问题讨论】:

    标签: c# ms-word bookmarks


    【解决方案1】:

    如果我正确理解你的问题,你想得到 Range 的值,所以在这种情况下你可以使用:

    string bm = bookmark.Range.Text;
    

    【讨论】:

    • 你没听明白 :) 顺便说一句,我会在书签上获取文本,所以我想在书签上获取符号位置的数量。例如:名称:。 开头之前的符号数为 6
    【解决方案2】:

    谢谢,我知道了:

    bm_numb =  bookmark.Range.Start;
    

    【讨论】:

    • 一句警告:Range.Start 的数量并不是特别可靠/准确。 Word 插入了许多“隐藏”的控制字符,如果您稍后尝试使用它,这些字符可能会被取消。域代码也可能使这不准确。
    猜你喜欢
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2011-07-12
    • 2017-01-27
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多