Práce s textem v tabulce
Jak je uvedeno v předchozích článcích, tabulka obvykle obsahuje prostý text, i když jiný obsah, jako jsou obrázky nebo dokonce jiné tabulky mohou být umístěny v tabulkách.
Přidávání textu nebo jiného obsahu do tabulky se provádí vhodnými metodami DocumentBuilder třída a je popsána v “Vytvořte stůl” článek. V tomto článku budeme hovořit o tom, jak pracovat s textem v již existující tabulce.
Nahradit text v tabulce
Stůl, jako každý jiný uzel v Aspose.Words, má přístup k Range objekt. Pomocí objektu rozsahu tabulky můžete text nahradit v tabulce.
V současné době je podporována schopnost používat zvláštní znaky při výměně, takže lze stávající text nahradit textem s více odstavci. K tomu je třeba použít speciální metaznaky popsané v odpovídajících Replace metoda.
Následující příklad kódu ukazuje, jak nahradit všechny případy řetězce textu v buňkách celé tabulky:
# 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") |
Extrahovat prostý text z tabulky nebo buňky
Použití Range objekt, můžete také volat metody na celém rozsahu tabulky a extrahovat tabulku jako prostý text. K tomu použijte Text majetek
Následující příklad kódu ukazuje, jak tisknout rozsah textu tabulky:
# 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) |
Stejná technika se používá pouze k získání obsahu z jednotlivých stolních buněk.
Následující příklad kódu ukazuje, jak tisknout textovou řadu prvků řádku a tabulky:
# 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) |
Práce s alternativním textem tabulky
Microsoft Word tabulky mají table title
a table description
které poskytují alternativní textové znázornění informací obsažených v tabulce.
In Aspose.Words, můžete také přidat název tabulky a popis pomocí Title a Description vlastnosti. Tyto vlastnosti mají význam pro dokumenty DOCX odpovídající ISO/IEC 29500. Při ukládání ve formátech dříve než ISO/IEC 29500, tyto vlastnosti jsou ignorovány.
Následující příklad kódu ukazuje, jak nastavit vlastnosti názvu a popisu tabulky:
# 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) |