Travailler avec du texte dans un tableau
Comme mentionné dans les articles précédents, un tableau contient généralement du texte brut, bien que d’autres contenus tels que des images ou même d’autres tableaux puissent être placés dans les cellules du tableau.
L’ajout de texte ou d’un autre contenu au tableau s’effectue à l’aide des méthodes appropriées de la classe DocumentBuilder et est décrit dans l’article “Créer un tableau”. Dans cet article, nous expliquerons comment travailler avec du texte dans un tableau déjà existant.
Remplacer du texte dans un tableau
La table, comme tout autre nœud dans Aspose.Words, a accès à l’objet Range. À l’aide de l’objet plage de tableau, vous pouvez remplacer du texte dans un tableau.
La possibilité d’utiliser des caractères spéciaux lors du remplacement est actuellement prise en charge, il est donc possible de remplacer le texte existant par du texte multi-paragraphes. Pour ce faire, vous devez utiliser les métacaractères spéciaux décrits dans la méthode Replace correspondante.
L’exemple de code suivant montre comment remplacer toutes les instances d’une chaîne de texte dans les cellules d’un tableau entier:
// 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"); |
Extraire le texte brut d’un tableau ou d’une cellule
À l’aide de l’objet Range, vous pouvez également appeler des méthodes sur toute la plage du tableau et extraire le tableau sous forme de texte brut. Pour ce faire, utilisez la propriété Text
L’exemple de code suivant montre comment imprimer la plage de texte d’un tableau:
// 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); |
La même technique est utilisée pour extraire le contenu des cellules individuelles du tableau uniquement.
L’exemple de code suivant montre comment imprimer une plage de texte d’éléments de ligne et de tableau:
// 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); |
Utilisation d’un texte de tableau alternatif
Les tableaux Microsoft Word ont un table title
et un table description
qui fournissent une représentation textuelle alternative des informations contenues dans le tableau.
Dans Aspose.Words, vous pouvez également ajouter un titre et une description de tableau à l’aide des propriétés Title et Description. Ces propriétés sont significatives pour les documents DOCX conformes à ISO/IEC 29500. Lors de l’enregistrement dans des formats antérieurs à ISO/IEC 29500, ces propriétés sont ignorées.
L’exemple de code suivant montre comment définir les propriétés de titre et de description d’une table:
// 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); |