Praca z tekstem w tabeli
Jak wspomniano w poprzednich artykułach, tabela zwykle zawiera zwykły tekst, chociaż w komórkach tabeli można umieścić inną zawartość, taką jak obrazy lub nawet inne tabele.
Dodawanie tekstu lub innej treści do tabeli odbywa się przy pomocy odpowiednich metod klasy DocumentBuilder i zostało opisane w artykule “Utwórz tabelę”. W tym artykule porozmawiamy o tym, jak pracować z tekstem w już istniejącej tabeli.
Zamień tekst w tabeli
Tabela, jak każdy inny węzeł w Aspose.Words, ma dostęp do obiektu Range. Korzystając z obiektu zakresu tabeli, możesz zastąpić tekst w tabeli.
Obecnie obsługiwana jest możliwość użycia znaków specjalnych podczas zastępowania, dzięki czemu możliwe jest zastąpienie istniejącego tekstu tekstem wieloakapitowym. Aby to zrobić, musisz użyć specjalnych metaznaków opisanych w odpowiedniej metodzie Replace.
Poniższy przykład kodu pokazuje, jak zastąpić wszystkie wystąpienia ciągu tekstowego w komórkach całej tabeli:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document(MY_DIR + "Tables.docx") | |
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table() | |
table.range.replace("Carrots", "Eggs", aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD)) | |
table.last_row.last_cell.range.replace("50", "20", aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD)) | |
doc.save(ARTIFACTS_DIR + "FindAndReplace.replace_text_in_table.docx") |
Wyodrębnij zwykły tekst z tabeli lub komórki
Za pomocą obiektu Range można także wywoływać metody w całym zakresie tabeli i wyodrębniać tabelę w postaci zwykłego tekstu. Aby to zrobić, użyj właściwości Text
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-Python-via-.NET.git. | |
doc = aw.Document(MY_DIR + "Tables.docx") | |
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table() | |
# 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. | |
print("Contents of the table: ") | |
print(table.range.text) |
Tę samą technikę stosuje się do wyodrębniania zawartości tylko z poszczególnych komórek tabeli.
Poniższy przykład kodu pokazuje, jak wydrukować zakres tekstu elementów wierszy i tabeli:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
print("\nContents of the row: ") | |
print(table.rows[1].range.text) | |
print("\nContents of the cell: ") | |
print(table.last_row.last_cell.range.text) |
Praca z alternatywnym tekstem tabeli
Tabele Microsoft Word zawierają formaty table title
i table description
, które stanowią alternatywną tekstową reprezentację informacji zawartych w tabeli.
W formacie Aspose.Words możesz także dodać tytuł i opis tabeli, korzystając z właściwości Title i Description. Te właściwości mają znaczenie w przypadku dokumentów DOCX zgodnych z ISO/IEC 29500. Podczas zapisywania w formatach wcześniejszych 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-Python-via-.NET.git. | |
doc = aw.Document(MY_DIR + "Tables.docx") | |
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table() | |
table.title = "Test title" | |
table.description = "Test description" | |
options = aw.saving.OoxmlSaveOptions() | |
options.compliance = aw.saving.OoxmlCompliance.ISO29500_2008_STRICT | |
doc.compatibility_options.optimize_for(aw.settings.MsWordVersion.WORD2016) | |
doc.save(ARTIFACTS_DIR + "WorkingWithTableStylesAndFormatting.table_title_and_description.docx", options) |