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 des cellules de tableau.
L’ajout de texte ou d’un autre contenu au tableau est effectué à l’aide des méthodes appropriées de la classe DocumentBuilder et est décrit dans l’article “Create a Table”. Dans cet article, nous allons parler de la façon de travailler avec du texte dans un tableau déjà existant.
Remplacer du texte dans un tableau
La table, comme tout autre nœud de Aspose.Words, a accès à l’objet Range. À l’aide de l’objet plage de tableaux, 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 du texte existant par du texte à plusieurs 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-Java.git. | |
Document doc = new Document(getMyDir() + "Tables.docx"); | |
Table table = (Table)doc.getChild(NodeType.TABLE, 0, true); | |
table.getRange().replace("Carrots", "Eggs", new FindReplaceOptions(FindReplaceDirection.FORWARD)); | |
table.getLastRow().getLastCell().getRange().replace("50", "20", new FindReplaceOptions(FindReplaceDirection.FORWARD)); | |
doc.save(getArtifactsDir() + "FindAndReplace.ReplaceTextInTable.docx"); |
Extraire du texte brut d’un tableau
À l’aide de l’objet Range, vous pouvez également appeler des méthodes sur l’ensemble de la plage de tables et extraire la table en texte brut. Pour ce faire, utilisez la propriété Text.
L’exemple de code suivant montre comment imprimer la plage de texte d’une table:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "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. | |
System.out.println("Contents of the table: "); | |
System.out.println(table.getRange().getText()); |
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:
L’exemple de code suivant montre comment imprimer la plage de texte des éléments de ligne et de tableau.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
System.out.println("\nContents of the row: "); | |
System.out.println(table.getRows().get(1).getRange().getText()); | |
System.out.println("\nContents of the cell: "); | |
System.out.println(table.getLastRow().getLastCell().getRange().getText()); |
Utilisation d’un Texte de Tableau alternatif
Les tableaux Microsoft Word ont un table title
et 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 DOCX documents conformes aux 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-Java.git. | |
Document doc = new Document(getMyDir() + "Tables.docx"); | |
Table table = (Table) doc.getChild(NodeType.TABLE, 0, true); | |
table.setTitle("Test title"); | |
table.setDescription("Test description"); | |
OoxmlSaveOptions options = new OoxmlSaveOptions(); { options.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); } | |
doc.getCompatibilityOptions().optimizeFor(com.aspose.words.MsWordVersion.WORD_2016); | |
doc.save(getArtifactsDir() + "WorkingWithTableStylesAndFormatting.SetTableTitleAndDescription.docx", options); |