Fr

KNOWLEDGEBASE

Tableaux en Python | Aspose

Dans cet article, nous travaillerons avec des tables en Python, nous vous montrerons le moyen le plus simple de créer une table et de manipuler les données à l’intérieur de la table. Grâce à notre API, vous pouvez manipuler des tableaux et les exporter vers différents formats, tels que Word, Excel, PDF, etc. Nous présenterons Aspose.Words pour Python via .NET et nous concentrerons sur la création et l’insertion de tables à l’aide de cette API.

Tables en Python

Aspose.Words pour Python via .NET est une bibliothèque de classes conçue pour lire et manipuler des documents de nombreux types comme Microsoft Word (DOCX, DOC, ODT ), Web (Markdown, HTML), PDF et autres. Avec cette API Python, vous pouvez créer, modifier, restituer et convertir des fichiers Word dans plusieurs formats, générer des rapports et visualiser vos données sans avoir besoin de logiciel externe. Plus de 100 classes Python permettant de gérer les opérations de traitement de documents et de formatage des données sont à votre disposition.

Travailler avec des tableaux en Python

Les tableaux permettent d’organiser de grandes quantités d’informations et de les afficher dans une structure en forme de grille avec des lignes et des colonnes. Ils sont très utiles lors de l’affichage de données à onglets car ils permettent un bien meilleur contrôle sur la conception du contenu. Les tableaux sont des ensembles structurés de données composés de lignes et de colonnes. Ils sont entièrement pris en charge dans notre bibliothèque et vous pouvez facilement modifier, modifier, ajouter et supprimer des tableaux. Ci-dessous, nous allons vous montrer comment créer un nouveau tableau à l’aide de Python, et dans notre documentation, vous pouvez voir comment appliquer le formatage , travailler avec TableStyle, [travailler avec des colonnes et des lignes]( https://docs.aspose.com/words /python-net/working-with-columns-and-rows/), et join and split tables .

Création de tableaux en Python

Notre bibliothèque propose différentes méthodes pour créer de nouveaux tableaux dans un document, et dans cet article, nous verrons comment utiliser certaines de ces méthodes. La table nouvellement créée a des valeurs similaires aux valeurs par défaut de Microsoft Word.

Propriété de la table Python

Vous pouvez insérer un tableau à l’aide de la classe DocumentBuilder et de la méthode suivante pour créer le tableau : • DocumentBuilder.start_table DocumentBuilder.insert_cell DocumentBuilder.end_row DocumentBuilder.end_table DocumentBuilder.writeln

Construire des méthodes de table Python

Créez une table en Python en suivant ces 7 étapes :

  1. Démarrez la table avec DocumentBuilder.start_table.
  2. Utilisez DocumentBuilder.insert_cell pour insérer une cellule dans le tableau et utilisez DocumentBuilder.cell_format pour spécifier la mise en forme des cellules.
  3. Utilisez le DocumentBuilder pour insérer le contenu des cellules.
  4. Répétez simplement les étapes 2 et 3 jusqu’à ce que vous terminiez la rangée.
  5. Vous pouvez appeler la méthode DocumentBuilder.end_row pour terminer la ligne et utiliser DocumentBuilder.row_format pour effectuer le formatage des lignes.
  6. Après cela, répétez simplement les étapes 2 à 5 jusqu’à ce que vous ayez terminé le tableau.
  7. Utilisez la méthode DocumentBuilder.end_table pour terminer le tableau.

Plus de détails sur la classe et les méthodes DocumentBuilder pour la création de tables sont décrits dans notre documentation.

Dans l’exemple ci-dessous, vous pouvez voir comment créer un tableau simple avec un formatage par défaut à l’aide de DocumentBuilder.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
    
# Start building the table.
builder.start_table()
builder.insert_cell()
builder.write("Row 1, Cell 1 Content.")
    
# Build the second cell.
builder.insert_cell()
builder.write("Row 1, Cell 2 Content.")
    
# Call the following method to end the row and start a new row.
builder.end_row()

# Build the first cell of the second row.
builder.insert_cell()
builder.write("Row 2, Cell 1 Content")

# Build the second cell.
builder.insert_cell()
builder.write("Row 2, Cell 2 Content.")
builder.end_row()

# Signal that we have finished building the table.
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.create_simple_table.docx")

Créez un tableau formaté à l’aide de DocumentBuilder avec l’exemple de code ci-dessous.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

table = builder.start_table()
builder.insert_cell()

# Table wide formatting must be applied after at least one row is present in the table.
table.left_indent = 20.0

# Set height and define the height rule for the header row.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

builder.cell_format.shading.background_pattern_color = drawing.Color.from_argb(198, 217, 241)
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True

builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")

# We don't need to specify this cell's width because it's inherited from the previous cell.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()

builder.cell_format.shading.background_pattern_color = drawing.Color.white
builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Reset height and define a different height rule for table body.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()
    
# Reset font formatting.
builder.font.size = 12
builder.font.bold = False

builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()

builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")

builder.insert_cell()
builder.write("Row 2, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.formatted_table.docx")

Insertion d’un tableau existant

Si vous avez déjà un tableau dans votre document et que vous souhaitez ajouter une copie de ce tableau afin d’y apporter des modifications, le moyen le plus simple de dupliquer un tableau consiste à utiliser le [Table.clone]( https://reference.aspose .com/words/python-net/aspose.words/node/clone/) pour conserver toute la mise en forme. Dans l’exemple ci-dessous, vous pouvez voir comment insérer un tableau, et si vous avez besoin du fichier modèle de cet exemple, vous pouvez le télécharger depuis [ici]( https://github.com/aspose-words/Aspose.Words -for-Python-via-.NET/blob/master/Examples/Data/Tables.docx).

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Tables.docx")

table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Clone the table and insert it into the document after the original.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Insert an empty paragraph between the two tables,
# or else they will be combined into one upon saving this has to do with document validation.
table.parent_node.insert_after(aw.Paragraph(doc), table)
    
doc.save(docs_base.artifacts_dir + "WorkingWithTables.clone_complete_table.docx")

Si vous avez des questions sur les tableaux, Aspose.Words pour Python via les produits .NET et avez besoin de l’aide de nos développeurs de support payant pour implémenter notre API dans votre projet, n’hésitez pas à nous contacter.