Работа с текст в Таблица
Както бе споменато в предишните статии, таблицата обикновено съдържа обикновен текст, въпреки че друго съдържание, като изображения или дори други таблици, може да бъде поставено в клетките на таблицата.
Добавянето на текст или друго съдържание към таблицата се извършва с помощта на подходящите методи от класа DocumentBuilder и е описано в статията “Create a Table”. В тази статия ще говорим за това как да работим с текст във вече съществуваща таблица.
Заместване на текст в Таблица
Таблицата, както всеки друг възел в Aspose.Words, има достъп до обекта Range. С помощта на обекта на диапазон от таблици можете да заместите текста в таблица.
Възможността за използване на специални знаци при заместване в момента се поддържа, така че е възможно да се замени съществуващия текст с текст от няколко абзаца. За да направите това, трябва да използвате специалните метахарактери, описани в съответния Replace метод.
Следващият пример за код показва как да заместите всички екземпляри на текстов низ в клетките на цяла таблица:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Tables.docx"); | |
auto table = System::ExplicitCast<Table>(doc->GetChild(NodeType::Table, 0, true)); | |
table->get_Range()->Replace(u"Carrots", u"Eggs", MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward)); | |
table->get_LastRow()->get_LastCell()->get_Range()->Replace(u"50", u"20", MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward)); | |
doc->Save(ArtifactsDir + u"FindAndReplace.ReplaceTextInTable.docx"); |
Извличане на обикновен текст от таблица или клетка
Използвайки обекта Range, можете също да извиквате методи в целия диапазон от таблици и да извлечете таблицата като обикновен текст. За да направите това, използвайте функцията Text.
Следващият пример за код показва как да отпечатате текстовия диапазон на таблица:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Tables.docx"); | |
auto table = System::ExplicitCast<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. | |
std::cout << "Contents of the table: " << std::endl; | |
std::cout << table->get_Range()->get_Text() << std::endl; |
Същата техника се използва за извличане на съдържание само от отделни клетки на таблицата.
Следващият пример за код показва как да отпечатате текстов диапазон от елементи на редове и таблици:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
std::cout << "\nContents of the row: " << std::endl; | |
std::cout << table->get_Rows()->idx_get(1)->get_Range()->get_Text() << std::endl; | |
std::cout << "\nContents of the cell: " << std::endl; | |
std::cout << table->get_LastRow()->get_LastCell()->get_Range()->get_Text() << std::endl; |
Работа с алтернативен текст на таблица
Microsoft Word таблиците имат table title
и table description
, които предоставят алтернативно текстово представяне на информацията, съдържаща се в таблицата.
В Aspose.Words Можете също да добавите заглавие и описание на таблицата, като използвате свойствата Title и Description. Тези свойства имат значение за DOCX документи, съответстващи на ISO / IEC 29500. Когато записвате във формати преди ISO / IEC 29500, тези свойства се игнорират.
Следният пример за код показва как да зададете свойствата за заглавие и описание на таблица:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Tables.docx"); | |
auto table = System::ExplicitCast<Table>(doc->GetChild(NodeType::Table, 0, true)); | |
table->set_Title(u"Test title"); | |
table->set_Description(u"Test description"); | |
auto options = MakeObject<OoxmlSaveOptions>(); | |
options->set_Compliance(OoxmlCompliance::Iso29500_2008_Strict); | |
doc->get_CompatibilityOptions()->OptimizeFor(Settings::MsWordVersion::Word2016); | |
doc->Save(ArtifactsDir + u"WorkingWithTableStylesAndFormatting.TableTitleAndDescription.docx", options); |