Как обнаружить пустой абзац в документе Word с помощью Microsoft.Office.Interop.Word в C # 4.0? - PullRequest
2 голосов
/ 02 июня 2011

Я хочу обнаружить пустые абзацы в документе Word с помощью Microsoft.Office.Interop.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 Ответ

5 голосов
/ 02 июня 2011

Ну, во-первых, вам может понадобиться перебрать все верхние и нижние колонтитулы всех разделов, если вы также хотите искать пустые параграфы в этих верхних и нижних колонтитулах.1003 *

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 до 2 символов, а не только один..

Вы также можете делать такие вещи, как

p.Range.Sentences.Count > 0

или

p.Range.Characters.Count > 0

Но эти методы обычно медленнее, чем проверка начальных и конечных положений.

...