Робота з текстом в таблиці

Як зазначено в попередніх статтях, таблиця зазвичай містить звичайний текст, хоча інший зміст, такі як зображення або навіть інші таблиці можна розмістити в таблиці клітин.

Додавання тексту або іншого вмісту до таблиці здійснюється за допомогою відповідних методів 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");
view raw replace-text.cs hosted with ❤ by GitHub

Витяг Plain Text з таблиці або клітинки

Використання 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);
view raw extract-text.cs hosted with ❤ by GitHub

Така ж техніка використовується для вилучення вмісту з окремих комірок.

Приклад наступного коду показує, як друкувати текстовий діапазон рядків та елементів таблиці:

// 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, що відповідають даним параметрам ISO/ МВЦ 29500. При збереженні у форматах раніше ISO/IEC 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);