如何使用C#4.0中的Microsoft.Office.Interop.Word检测Word文档中的空段落?

时间:2011-06-02 13:57:50

标签: c#-4.0 ms-word interop office-interop

我想使用Microsoft.Office.Interop.Word检测Word文档中的空段落。 假设,如果我的word文档有一些空段落,那么

假设第3段是空段......

Microsoft.Office.Interop.Word.Paragraph para = wordDoc.Content.Paragraphs[3];
int cSent = para.Range.Sentences.Count;

for (int j = 1; j <= cSent; j++)
{
 Microsoft.Office.Interop.Word.Range sent = para.Range.Sentences[j];
 MessageBox.Show("Sent lines :" + sent.Text.ToString());
}

然后空段落取了最后一个非空段落的最后一句。所以,我无法在Word文档中检测到空段落。

有没有办法获得空段落列表?

请指导我摆脱这个问题...

1 个答案:

答案 0 :(得分:5)

好吧,首先,如果您还想在这些页眉/页脚中查找空的句子,您可能需要遍历所有部分的所有页眉和页脚。

其次,这样的事情应该有效

for each p in Doc.Content.Paragraphs
    if (p.Range.End - p.Range.Start) > 1 then (The paragraph is not empty)
Next

您可能需要使用该“1”数字,因为我无法回想起Word设置起点和终点的位置,空段落从开始到结束可能是2个字符,而不仅仅是一个。

您也可以执行

之类的操作
p.Range.Sentences.Count > 0

p.Range.Characters.Count > 0

但这些技巧通常比检查开始和结束位置要慢。