Распутать закладки строк в документе Word

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

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

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

Шаг 1: Загрузка документа

Мы используемDocument класс для загрузки существующего документа из файла:

string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document(dataDir + "Table column bookmarks.docx");

Шаг 2: Раскройте закладки линий

Мы используемUntangle функция для распутывания закладок из строк. Эта функция выполняет пользовательскую задачу по размещению концов закладок в той же строке, где начинается закладка:

Untangle(doc);

Шаг 3. Удалить строку по закладке

Мы используемDeleteRowByBookmark функция для удаления определенной строки по ее закладке:

DeleteRowByBookmark(doc, "ROW2");

Шаг 4. Проверьте целостность других закладок

Мы проверяем, что другие закладки не были повреждены, проверяя, присутствует ли конец закладки:

if (doc.Range.Bookmarks["ROW1"].BookmarkEnd == null)
throw new Exception("Wrong, the end of the bookmark was deleted.");

doc.Save(dataDir + "WorkingWithBookmarks.UntangleRowBookmarks.docx");

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

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


	// Путь к каталогу документов.
	string dataDir = "YOUR DOCUMENT DIRECTORY";
	Document doc = new Document(dataDir + "Table column bookmarks.docx");

	//При этом выполняется пользовательская задача по помещению концов закладки строки в ту же строку, где находится начало закладки.
	Untangle(doc);

	// Теперь мы можем легко удалять строки по закладке, не повреждая закладки других строк.
	DeleteRowByBookmark(doc, "ROW2");

	// Это просто для того, чтобы убедиться, что другая закладка не повреждена.
	if (doc.Range.Bookmarks["ROW1"].BookmarkEnd == null)
		throw new Exception("Wrong, the end of the bookmark was deleted.");

	doc.Save(dataDir + "WorkingWithBookmarks.UntangleRowBookmarks.docx");

Распутать исходный код


private void Untangle(Document doc)
        {
            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);
            }
        }

Исходный код Удалеровбибукмарк


 private void DeleteRowByBookmark(Document doc, string bookmarkName)
        {
            Bookmark bookmark = doc.Range.Bookmarks[bookmarkName];

            Row row = (Row) bookmark?.BookmarkStart.GetAncestor(typeof(Row));
            row?.Remove();
        }

Заключение

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

Часто задаваемые вопросы по распутыванию закладок строк в документе Word

Вопрос. Работает ли функция «Расшифровка закладок строк» только с закладками строк в таблицах?

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

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

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

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

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

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

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

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

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