créer des tableaux dans des documents word en utilisant python

Les tableaux sont couramment utilisés dans les documents Word pour organiser les informations dans une structure de type grille. Ils permettent de synthétiser les informations sous forme de lignes et de colonnes. Dans cet article, vous apprendrez à créer un tableau dans des documents Word par programmation à l’aide de Python. De plus, l’article expliquera comment créer des tableaux imbriqués ou cloner un tableau existant dans des documents Word.

Bibliothèque Python pour créer des tableaux dans des documents Word

Pour travailler avec des tableaux dans des documents Word, nous utiliserons Aspose.Words for Python. La bibliothèque est conçue pour créer et manipuler dynamiquement des documents Word à partir des applications Python. Vous pouvez installer la bibliothèque à partir de PyPI à l’aide de la commande pip suivante.

pip install aspose-words

Créer un tableau dans un document Word en Python

Voici les étapes pour créer un tableau dans un document Word DOCX à l’aide de Python.

  • Créez un objet de la classe Document.
  • Créez un objet de la classe DocumentBuilder.
  • Démarrez une table à l’aide de la méthode DocumentBuilder.starttable() et obtenez la référence de la table dans un objet.
  • Insérez une cellule à l’aide de la méthode DocumentBuilder.insertcell().
  • Définissez le formatage de la cellule à l’aide de la propriété DocumentBuilder.cellformat.
  • Définissez l’ajustement automatique à l’aide de la méthode autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS).
  • Définissez l’alignement de la cellule.
  • Insérez du texte dans la cellule à l’aide de la méthode DocumentBuilder.write().
  • Répétez l’insertion de cellules et de texte dans les cellules si nécessaire.
  • Terminer une ligne lorsque vous avez terminé d’insérer des cellules.
  • Table de fin lorsque vous avez inséré toutes les lignes.
  • Enregistrez le document Word à l’aide de la méthode Document.save().

L’exemple de code suivant montre comment créer une table dans des documents DOCX à l’aide de Python.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()

# Create document builder.
builder = aw.DocumentBuilder(doc)

# Start the table.
table = builder.start_table()

# Insert cell.
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

# Set alignment and font settings.
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.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()

# End table.
builder.end_table()

# Save the document.
doc.save("table_formatted.docx")

Voici la capture d’écran du tableau que nous avons créé à l’aide de l’exemple de code ci-dessus.

Créer un tableau imbriqué dans un document Word en Python

Aspose.Words for Python vous permet également de créer un tableau imbriqué de manière transparente. En d’autres termes, vous pouvez créer un nouveau tableau dans une cellule du tableau. Voici les étapes pour créer une table imbriquée dans un fichier Word DOCX.

  • Créez un objet de la classe Document.
  • Créez un objet de la classe DocumentBuilder.
  • Démarrez une table à l’aide de la méthode DocumentBuilder.starttable() et obtenez la référence de la table dans un objet.
  • Insérez une cellule à l’aide de la méthode DocumentBuilder.insertcell() et obtenez la référence de la cellule dans un objet.
  • Insérez du texte dans la cellule à l’aide de la méthode DocumentBuilder.write().
  • Répétez l’insertion de cellules et de texte dans les cellules si nécessaire.
  • Table de fin lorsque vous avez inséré toutes les lignes.
  • Déplacez le contrôle à l’intérieur de la cellule souhaitée à l’aide de la méthode DocumentBuilder.moveto(Cell.firstparagraph).
  • Créez un autre tableau en insérant des cellules et terminez le tableau lorsque vous avez terminé.
  • Enregistrez le document Word à l’aide de la méthode Document.save().

L’exemple de code suivant montre comment créer une table imbriquée dans un document DOCX à l’aide de Python.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Insert cell.
cell = builder.insert_cell()
builder.writeln("Outer Table Cell 1")

builder.insert_cell()
builder.writeln("Outer Table Cell 2")

# This call is important to create a nested table within the first table. 
# Without this call, the cells inserted below will be appended to the outer table.
builder.end_table()

# Move to the first cell of the outer table.
builder.move_to(cell.first_paragraph)

# Build the inner table.
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()

# Save the document.
doc.save("table_nested.docx")

Voici la sortie de l’exemple de code ci-dessus.

Cloner une table existante dans un document Word en Python

Vous pouvez également cloner un tableau existant dans un document Word. Voici les étapes pour effectuer cette opération.

  • Chargez le document à l’aide de la classe Document.
  • Obtenez la référence de la table dans un objet à l’aide de la méthode Document.getchild(NodeType.TABLE, int, boolean).astable().
  • Appelez la méthode clone(True).astable() en utilisant l’objet de la table et obtenez la référence de la table clonée dans un autre objet.
  • Insérez la table clonée à l’aide de la méthode Table.parentnode.insertafter().
  • Insérez un paragraphe vide entre les tableaux à l’aide de la méthode Table.parentnode.insertafter(Paragraph(Document), Table).
  • Enregistrez le document Word à l’aide de la méthode Document.save().

L’exemple de code suivant montre comment cloner une table dans un document Word DOCX à l’aide de Python.

import aspose.words as aw

# Load the Word document.
doc = aw.Document("table_formatted.docx")

# Get reference of the desired table.
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Clone the table and insert it into the document after the original table.
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.
table.parent_node.insert_after(aw.Paragraph(doc), table)

# Save the document.
doc.save("table_clone.docx")

La capture d’écran suivante montre la table clonée dans un document Word.

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire pour utiliser Aspose.Words for Python sans limitation d’évaluation.

Conclusion

Dans cet article, vous avez appris à créer des tableaux dans des documents Word à l’aide de Python. De plus, vous avez vu comment créer des tableaux imbriqués ou cloner dynamiquement des tableaux existants dans des documents Word. En outre, vous pouvez visiter la documentation de Aspose.Words for Python pour explorer d’autres fonctionnalités. En cas de questions, n’hésitez pas à nous le faire savoir via notre forum.

Voir également

Info : Si jamais vous avez besoin d’obtenir un document Word à partir d’une présentation PowerPoint, vous pouvez utiliser le convertisseur Aspose Presentation to Word Document.