Распутать документ Word

В этой статье мы рассмотрим приведенный выше исходный код C#, чтобы понять, как использовать функцию Untangle в библиотеке Aspose.Words для .NET. Эта функция раскрывает вложенные закладки, находящиеся в соседних строках таблицы.

Предварительные условия

  • Базовые знания языка C#.
  • Среда разработки .NET с установленной библиотекой Aspose.Words.

Шаг 1. Просмотрите закладки документа

Мы используем цикл foreach для перебора всех закладок, присутствующих в документе:

foreach(Bookmark bookmark in doc.Range.Bookmarks)
{
     // Код для обработки закладок здесь
}

Шаг 2. Получите родительские строки из закладок

Мы используемGetAncestor методы для получения родительских строк начального и конечного узлов закладки:

Row row1 = (Row)bookmark.BookmarkStart.GetAncestor(typeof(Row));
Row row2 = (Row)bookmark.BookmarkEnd.GetAncestor(typeof(Row));

Шаг 3. Распутывайте вложенные закладки

Если обе родительские строки найдены и закладка начинается и заканчивается в соседних строках, перемещаем конечный узел закладки в конец последнего абзаца последней ячейки в верхней строке:

if (row1 != null && row2 != null && row1.NextSibling == row2)
     row1.LastCell.LastParagraph.AppendChild(bookmark.BookmarkEnd);

Пример исходного кода для Untangle с использованием Aspose.Words для .NET

Вот полный пример исходного кода для распутывания вложенных закладок с помощью Aspose.Words для .NET:


	foreach (Bookmark bookmark in doc.Range.Bookmarks)
	{
		// Получите родительскую строку как закладки, так и конечного узла закладки.
		Row row1 = (Row) bookmark.BookmarkStart.GetAncestor(typeof(Row));
		Row row2 = (Row) bookmark.BookmarkEnd.GetAncestor(typeof(Row));

		// Если обе строки найдены в порядке, а начало и конец закладки содержатся в соседних строках,
		// переместите конечный узел закладки в конец последнего абзаца в последней ячейке верхней строки.
		if (row1 != null && row2 != null && row1.NextSibling == row2)
			row1.LastCell.LastParagraph.AppendChild(bookmark.BookmarkEnd);
	}

Заключение

В этой статье мы изучили исходный код C#, чтобы понять, как использовать функцию Untangle Aspose.Words для .NET. Мы следовали пошаговому руководству, чтобы распутать вложенные закладки в соседних строках таблицы.

Часто задаваемые вопросы

Вопрос: Функция Untangle работает только с вложенными закладками в соседних строках таблицы?

О: Да, функция «Распутать» создана специально для распутывания вложенных закладок, находящихся в соседних строках таблицы. Если закладки не находятся на соседних строках, эта функция не будет применима.

Вопрос: Как определить вложенные закладки в документе Word?

О: Вы можете идентифицировать вложенные закладки, просматривая закладки в документе и проверяя, находятся ли начальная и конечная закладки в соседних строках таблицы. Вы можете использовать исходный код, представленный в этой статье, в качестве отправной точки для реализации этой функции.

Вопрос: Изменяет ли функция «Расшифровка» содержимое исходного документа?

О: Да, функция Untangle изменяет исходный документ, перемещая конечный узел закладки в конец последнего абзаца последней ячейки в верхней строке. Обязательно сохраните резервную копию документа перед применением этой функции.

Вопрос: Как я могу отделить вложенные закладки в других типах элементов документа, таких как разделы или абзацы?

О: Функция Untangle, представленная в этой статье, специально предназначена для распутывания вложенных закладок в соседних строках таблицы. Если вы хотите распутать вложенные закладки в других элементах документа, вам необходимо соответствующим образом адаптировать код и использовать соответствующие методы для доступа к нужным элементам.

Вопрос: Существуют ли другие способы распутать вложенные закладки в документе Word с помощью Aspose.Words for .NET?

О: Метод, представленный в этой статье, является распространенным методом распутывания вложенных закладок в соседних строках таблицы. Однако могут существовать и другие подходы или методы в зависимости от конкретных потребностей вашего проекта. Вы можете проверитьСсылки на Aspose.Words для .NET API для дальнейшего изучения доступных функций.