Работа с текст в таблица
Както е посочено в предходните статии, таблицата обикновено съдържа обикновен текст, въпреки че друго съдържание като изображения или дори други таблици могат да бъдат поставени в клетки на таблицата.
Добавянето на текст или друго съдържание към таблицата се извършва, като се използват подходящите методи на DocumentBuilder клас и е описан в “Създай маса” статия. В тази статия ще обсъдим как да работим с текста в вече съществуваща таблица.
Замяна на текст в таблица
Масата, като всеки друг възел в Aspose.Words, има достъп до Range Възразявам. С помощта на обект с обхват на таблицата можете да замените текста в таблица.
Възможността за използване на специални символи при заместване в момента се поддържа, така че е възможно да се замени съществуващ текст с многопараграфи текст. За да направите това, трябва да използвате специалните мета символи, описани в съответните Replace метод.
Следният пример за код показва как да замените всички случаи на низ от текст в клетките на цяла таблица:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Tables.docx"); | |
Table table = (Table)doc.GetChild(NodeType.Table, 0, true); | |
table.Range.Replace("Carrots", "Eggs", new FindReplaceOptions(FindReplaceDirection.Forward)); | |
table.LastRow.LastCell.Range.Replace("50", "20", new FindReplaceOptions(FindReplaceDirection.Forward)); | |
doc.Save(ArtifactsDir + "FindAndReplace.ReplaceTextInTable.docx"); |
Извличане на обикновен текст от таблица или клетка
Използване на Range обект, можете да се обадите методи на цялата таблица диапазон и извлечете таблицата като обикновен текст. За целта използвайте Text собственост
Следният пример за код показва как да отпечатате текстовия диапазон на таблица:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "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. | |
Console.WriteLine("Contents of the table: "); | |
Console.WriteLine(table.Range.Text); |
Същата техника се използва за извличане на съдържание само от отделни клетки.
Следният пример с код показва как да отпечатате текстов диапазон от редове и елементи на таблица:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Console.WriteLine("\nContents of the row: "); | |
Console.WriteLine(table.Rows[1].Range.Text); | |
Console.WriteLine("\nContents of the cell: "); | |
Console.WriteLine(table.LastRow.LastCell.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-.NET.git. | |
Document doc = new Document(MyDir + "Tables.docx"); | |
Table table = (Table) doc.GetChild(NodeType.Table, 0, true); | |
table.Title = "Test title"; | |
table.Description = "Test description"; | |
OoxmlSaveOptions options = new OoxmlSaveOptions { Compliance = OoxmlCompliance.Iso29500_2008_Strict }; | |
doc.CompatibilityOptions.OptimizeFor(Aspose.Words.Settings.MsWordVersion.Word2016); | |
doc.Save(ArtifactsDir + "WorkingWithTableStylesAndFormatting.TableTitleAndDescription.docx", options); |