Робота з текстом в таблиці
Як зазначено в попередніх статтях, таблиця зазвичай містить звичайний текст, хоча інший вміст, такі як зображення або навіть інші таблиці можна розмістити в таблиці клітин.
Додавання тексту або іншого вмісту до таблиці здійснюється за допомогою відповідних методів DocumentBuilder клас і описано в “Створити таблицю” стаття. У статті ми будемо говорити про те, як працювати з текстом вже існуючого столу.
Заміна тексту в таблиці
Стіл, як будь-який інший вузол в Aspose.Words, має доступ до Range об’єкт. Використовуючи об’єкт діапазону таблиці, ви можете замінити текст у таблиці.
Уміння використовувати спеціальні символи при заміні в даний час підтримується, тому можна замінити існуючий текст з текстом багатопара. Для цього потрібно використовувати спеціальні метахаракти, описані в відповідних умовах Replace метод.
Приклад коду показує, як замінити всі екземпляри рядка тексту в клітинках цілого столу:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Tables.docx"); | |
Table table = (Table)doc.getChild(NodeType.TABLE, 0, true); | |
table.getRange().replace("Carrots", "Eggs", new FindReplaceOptions(FindReplaceDirection.FORWARD)); | |
table.getLastRow().getLastCell().getRange().replace("50", "20", new FindReplaceOptions(FindReplaceDirection.FORWARD)); | |
doc.save(getArtifactsDir() + "FindAndReplace.ReplaceTextInTable.docx"); |
Витяг Plain Text з таблиці
Використання Range об’єкт, ви також можете викликати методи на весь ряд таблиці і витягти таблицю як звичайний текст. Для цього використовуйте Text майно
Приклад коду показує, як друкувати текстовий діапазон таблиці:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "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. | |
System.out.println("Contents of the table: "); | |
System.out.println(table.getRange().getText()); |
Така ж техніка використовується для вилучення вмісту з окремих комірок.
Приклад коду показує, як друкувати текстовий діапазон рядків та елементів таблиці:
Приклад коду показує, як друкувати текстовий діапазон рядків і елементів таблиці.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
System.out.println("\nContents of the row: "); | |
System.out.println(table.getRows().get(1).getRange().getText()); | |
System.out.println("\nContents of the cell: "); | |
System.out.println(table.getLastRow().getLastCell().getRange().getText()); |
Робота з альтернативним текстом таблиці
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-Java.git. | |
Document doc = new Document(getMyDir() + "Tables.docx"); | |
Table table = (Table) doc.getChild(NodeType.TABLE, 0, true); | |
table.setTitle("Test title"); | |
table.setDescription("Test description"); | |
OoxmlSaveOptions options = new OoxmlSaveOptions(); { options.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); } | |
doc.getCompatibilityOptions().optimizeFor(com.aspose.words.MsWordVersion.WORD_2016); | |
doc.save(getArtifactsDir() + "WorkingWithTableStylesAndFormatting.SetTableTitleAndDescription.docx", options); |