Работа с текстом в столе
Как упоминалось в предыдущих статьях, таблица обычно содержит простой текст, хотя в ячейки таблицы может быть помещено другое содержимое, такое как изображения или даже другие таблицы.
Добавление текста или другого контента в таблицу осуществляется с использованием соответствующих методов. DocumentBuilder класс и описывается в ““Создать стол” Статья. В этой статье мы поговорим о том, как работать с текстом в уже существующей таблице.
Заменить текст в таблице
Стол, как и любой другой узел в Aspose.Words, имеет доступ к Range объект. Используя объект диапазона таблицы, можно заменить текст в таблице.
В настоящее время поддерживается возможность использования специальных символов при замене, поэтому можно заменить существующий текст многопараграфным текстом. Для этого нужно использовать специальные метахарактеры, описанные в соответствующих Replace метод.
Следующий пример кода показывает, как заменить все экземпляры строки текста в ячейках всей таблицы:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Tables.docx"); | |
Table table = (Table)doc.GetChild(NodeType.Table, 0, true); | |
table.Range.Replace("Carrots", "Eggs", new FindReplaceOptions(FindReplaceDirection.Forward)); | |
table.LastRow.LastCell.Range.Replace("50", "20", new FindReplaceOptions(FindReplaceDirection.Forward)); | |
doc.Save(ArtifactsDir + "FindAndReplace.ReplaceTextInTable.docx"); |
Извлеките простой текст из таблицы или клетки
Используя Range Объект, вы также можете вызывать методы по всему диапазону таблиц и извлекать таблицу в виде простого текста. Чтобы сделать это, используйте Text собственность
Следующий пример кода показывает, как распечатать текстовый диапазон таблицы:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Tables.docx"); | |
Table table = (Table) doc.GetChild(NodeType.Table, 0, true); | |
// The range text will include control characters such as "\a" for a cell. | |
// You can call ToString and pass SaveFormat.Text on the desired node to find the plain text content. | |
Console.WriteLine("Contents of the table: "); | |
Console.WriteLine(table.Range.Text); |
Этот же метод используется для извлечения содержимого только из отдельных ячеек таблицы.
Следующий пример кода показывает, как распечатать текстовый диапазон элементов строки и таблицы:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Console.WriteLine("\nContents of the row: "); | |
Console.WriteLine(table.Rows[1].Range.Text); | |
Console.WriteLine("\nContents of the cell: "); | |
Console.WriteLine(table.LastRow.LastCell.Range.Text); |
Работа с альтернативным текстом таблицы
Microsoft Word столы имеют table title
и table description
которые обеспечивают альтернативное текстовое представление информации, содержащейся в таблице.
В Aspose.Words, Вы также можете добавить заголовок и описание таблицы, используя Title и Description свойств. Эти свойства имеют значение для документов DOCX, соответствующих ISOIEC 29500. При сохранении в форматах раньше, чем ISOIEC 29500, эти свойства игнорируются.
Следующий пример кода показывает, как установить свойства заголовка и описания таблицы:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Tables.docx"); | |
Table table = (Table) doc.GetChild(NodeType.Table, 0, true); | |
table.Title = "Test title"; | |
table.Description = "Test description"; | |
OoxmlSaveOptions options = new OoxmlSaveOptions { Compliance = OoxmlCompliance.Iso29500_2008_Strict }; | |
doc.CompatibilityOptions.OptimizeFor(Aspose.Words.Settings.MsWordVersion.Word2016); | |
doc.Save(ArtifactsDir + "WorkingWithTableStylesAndFormatting.TableTitleAndDescription.docx", options); |