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

Както е посочено в предходните статии, таблицата обикновено съдържа обикновен текст, въпреки че друго съдържание като изображения или дори други таблици могат да бъдат поставени в клетки на таблицата.

Добавянето на текст или друго съдържание към таблицата се извършва, като се използват подходящите методи на DocumentBuilder клас и е описан в “Създай маса” статия. В тази статия ще обсъдим как да работим с текста в вече съществуваща таблица.

Замяна на текст в таблица

Масата, като всеки друг възел в Aspose.Words, има достъп до Range Възразявам. С помощта на обект с обхват на таблицата можете да замените текста в таблица.

Възможността за използване на специални символи при заместване в момента се поддържа, така че е възможно да се замени съществуващ текст с многопараграфи текст. За да направите това, трябва да използвате специалните мета символи, описани в съответните Replace метод.

Следният пример за код показва как да замените всички случаи на низ от текст в клетките на цяла таблица:

# 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")
view raw replace-text.py hosted with ❤ by GitHub

Извличане на обикновен текст от таблица или клетка

Използване на Range обект, можете да се обадите методи на цялата таблица диапазон и извлечете таблицата като обикновен текст. За целта използвайте Text собственост

Следният пример за код показва как да отпечатате текстовия диапазон на таблица:

# 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)
view raw extract-text.py hosted with ❤ by GitHub

Същата техника се използва за извличане на съдържание само от отделни клетки.

Следният пример с код показва как да отпечатате текстов диапазон от редове и елементи на таблица:

# 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)

Работа с алтернативен текст на таблицата

Microsoft Word масите имат a table title както и table description които предоставят алтернативно текстово представяне на информацията, съдържаща се в таблицата.

В Aspose.Words, Можете също така да добавите заглавие и описание на таблицата с помощта на Title както и Description имоти. Тези свойства са смислени за документи на DOCX в съответствие с ISOIEC 29500. При запис във формати по-рано от ISO/IEC 29500, тези свойства са игнорирани.

Следният пример с код показва как да зададете заглавието и описанието свойства на таблица:

# 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)