У меня есть документ с большим текстом, который содержит некоторые заголовки. Эти заголовки имеют соответственно одну таблицу в качестве ребенка. (Изображен на скриншоте)Получить текст под пунктом программно
Поэтому я использовал библиотеку Microsoft Interop.Word. Мой код выглядит так. Как я могу получить детей в абзаце заголовка? Может быть, есть лучший способ сделать это.
Application word = new Application();
Document doc = new Document();
object missing = System.Type.Missing;
doc = word.Documents.Open(ref m_FileName,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
foreach (Paragraph paragraph in doc.Paragraphs)
{
Style style = paragraph.get_Style() as Style;
string text = paragraph.Range.Text;
paragraph.Range.Tables // does not get the table under the paragraph
}
документа слово не иерархическая по своей внутренней структуре, а последовательность на уровне блоков элементы, такие как абзацы и таблицы, поэтому абзац заголовка не содержит таблицы. В вашем случае это означает, что вам нужно получить доступ к абзацу, следующему заголовку (или вы также можете просто перебрать все таблицы в документе с помощью 'doc . Таблицы') –
В стороне: с .NET 4 вы можете написать свой код гораздо более компактным, нет необходимости указывать все отсутствующие параметры и использовать 'ref'. Вы можете просто написать:' word.Document.Open (m_FileName); ' –
@dirk vollmar Но Мне нужен заголовок как ключ для таблицы. Должен быть способ сделать это. Или я ошибаюсь? –