Praca z tekstem w tabeli
Jak wspomniano w poprzednich artykułach, tabela zazwyczaj zawiera zwykły tekst, chociaż inne treści, takie jak obrazy lub nawet inne tabele mogą być umieszczone w komórkach tabeli.
Dodawanie tekstu lub innych treści do tabeli odbywa się przy użyciu odpowiednich metod DocumentBuilder klasa i jest opisana w “Utwórz tabelę” Artykuł. W tym artykule omówimy jak pracować z tekstem w istniejącej tabeli.
Zastąp tekst w tabeli
Stół, jak każdy inny węzeł w Aspose.Words, ma dostęp do Range obiekt. Korzystanie z zakresu tabeli obiektu, można zastąpić tekst w tabeli.
Możliwość używania znaków specjalnych podczas zastępowania jest obecnie obsługiwana, więc możliwe jest zastąpienie istniejącego tekstu tekstem wieloskładnikowym. Aby to zrobić, należy użyć specjalnych metacharaktorów opisanych w odpowiednich Replace Metoda.
Poniższy przykład kodu pokazuje jak zastąpić wszystkie instancje łańcucha tekstu w komórkach całej tabeli:
// 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"); |
Wydrukuj zwykły tekst ze stołu
Korzystanie z Range obiekt, można również wywołać metody w całym zakresie tabeli i ekstrahować tabelę jako zwykły tekst. Aby to zrobić, należy użyć Text nieruchomości
Poniższy przykład kodu pokazuje jak wydrukować zakres tekstu tabeli:
// 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()); |
Tę samą technikę stosuje się wyłącznie do ekstrakcji zawartości z poszczególnych komórek stołowych.
Poniższy przykład kodu pokazuje, jak wydrukować zakres elementów wiersza i tabeli:
Poniższy przykład kodu pokazuje jak wydrukować zakres tekstu elementów wiersza i tabeli.
// 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()); |
Praca z alternatywnym tekstem tabeli
Microsoft Word tabele mają table title
oraz table description
które zapewniają alternatywne tekstualne przedstawienie informacji zawartych w tabeli.
W Aspose.Words, można również dodać tytuł tabeli i opis za pomocą Title oraz Description nieruchomości. Właściwości te mają znaczenie dla dokumentów DOCX zgodnych z ISO/ IEC 29500. Podczas zapisywania w formatach wcześniej niż ISO/ IEC 29500, te właściwości są ignorowane.
Poniższy przykład kodu pokazuje jak ustawić właściwości tytułu i opisu tabeli:
// 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); |