如何使用Word Interop获取Word文档中特定单词的范围

时间:2015-06-17 03:46:00

标签: c# .net winforms ms-word office-interop

我正在创建一个C#程序,它在word文档中插入一个表。现在,我需要在不同的word文档中的某个位置插入一个表。我所有的单词文档/模板中都有单词<table>,我要插入表格。为了能够在特定的word文档位置插入表格,我需要获取单词<table>的位置范围。有没有办法在单词文档中获取该特定单词的范围?

我在所搜索的参考文献中看到的只是使用空格,单词,句子等的计数来获取范围,如下所示:

object start = doc.Words[2].Start; //start of the second word
object end = doc.Words[2].End; // start of the third word

Word.Range myRange = doc.Range(ref start, ref end);

由于我的word文档中的单词数是动态的,因此上面的代码不是很有帮助。

有没有办法使用C#word interop获取word文档中特定单词的范围?

1 个答案:

答案 0 :(得分:2)

您可以使用空(或实际上任何)Find的{​​{1}}对象将范围的边界设置为文档中的特定字/字符串:

Range

Word.Range range = document.Range(0, 0); if (range.Find.Execute("<table>")) { // range is now set to bounds of the word "<table>" } 方法有其他参数(用于执行不区分大小写的匹配等)。