Automatisation de mots en Python

Les fichiers MS Word sont énormément utilisés pour créer divers types de documents tels que des factures, des rapports, des articles techniques, etc. L’automatisation des documents a permis aux utilisateurs de générer dynamiquement des documents Word à partir de leurs portails Web ou de bureau. Par conséquent, dans cet article, nous expliquerons comment générer des documents Word en Python sans MS Office. De plus, vous apprendrez à créer un fichier DOCX ou DOC et à y ajouter dynamiquement du texte ou d’autres éléments à l’aide de Python.

API Python pour créer des documents Word

Afin de créer dynamiquement des documents Word, nous utiliserons Aspose.Words for Python. Il s’agit d’une puissante bibliothèque Python qui vous permet de créer et de manipuler des documents MS Word de manière transparente. Vous pouvez installer la bibliothèque dans votre application Python à partir de PyPI à l’aide de la commande pip suivante.

pip install aspose-words

Créer un fichier Word DOCX ou DOC en Python

Voici les étapes pour créer un document Word à partir de rien en Python.

  • Créez un objet de la classe Document.
  • Créez un objet de la classe DocumentBuilder.
  • Insérez du texte dans le document à l’aide de la méthode DocumentBuilder.write().
  • Enregistrez le document Word à l’aide de la méthode Document.save().

L’exemple de code suivant montre comment créer un document Word DOCX.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# add text to the document
builder.write("Hello world!")

# save document
doc.save("out.docx")

Production

créer un document word en python

Charger un document Word existant en Python

Vous pouvez également charger un document Word existant en fournissant son chemin d’accès au constructeur Document. L’exemple de code suivant montre comment charger un document Word.

import aspose.words as aw

# create document object
doc = aw.Document("document.docx")

# manipulate document

# save document
doc.save("out.docx")

Insérer un paragraphe dans un document Word à l’aide de Python

Les documents Word contiennent du texte sous forme de paragraphes. Par conséquent, dans cette section, nous allons montrer comment insérer un paragraphe dans un document Word à l’aide de Python.

  • Créez un objet de la classe Document.
  • Créez un objet de la classe DocumentBuilder.
  • Obtenez la référence de la police à partir de l’objet Documentbuilder et définissez la police.
  • Obtenez la référence du paragraphe fromat à partir de l’objet Documentbuilder et définissez l’indentation, l’alignement, etc.
  • Insérez du texte dans le paragraphe à l’aide de la méthode DocumentBuilder.write().
  • Enregistrez le document Word à l’aide de la méthode Document.save().

L’exemple de code suivant montre comment insérer un paragraphe dans un document Word à l’aide de Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# create font
font = builder.font
font.size = 16
font.bold = True
font.name = "Arial"
font.underline = aw.Underline.DASH

# set paragraph formatting
paragraphFormat = builder.paragraph_format
paragraphFormat.first_line_indent = 8
paragraphFormat.alignment = aw.ParagraphAlignment.JUSTIFY
paragraphFormat.keep_together = True

# add text
builder.writeln("A whole paragraph.")

# save document
doc.save("out.docx")

Production

créer un paragraphe dans un document word python

En savoir plus sur l’utilisation des paragraphes dans les documents Word à l’aide de Python.

Ajouter un tableau dans un document Word à l’aide de Python

Les tableaux font partie intégrante des documents pour afficher les informations sous forme de lignes et de colonnes. Aspose.Words for Python facilite grandement le travail avec les tableaux. Voici les étapes pour ajouter un tableau dans un document Word à 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 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 insérer un tableau dans un document Word à l’aide de Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# start table
table = builder.start_table()

# insert cell 
builder.insert_cell()
table.auto_fit(aw.tables.AutoFitBehavior.AUTO_FIT_TO_CONTENTS)

# set formatting and add text
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER
builder.write("This is row 1 cell 1")

# insert cell
builder.insert_cell()
builder.write("This is row 1 cell 2")

# end row
builder.end_row()

# insert another cell in the next row
builder.insert_cell()

# format row if required
builder.row_format.height = 100
builder.row_format.height_rule = aw.HeightRule.EXACTLY

# format cell and add text
builder.cell_format.orientation = aw.TextOrientation.UPWARD
builder.writeln("This is row 2 cell 1")

# insert another cell, set formatting and add text
builder.insert_cell()
builder.cell_format.orientation = aw.TextOrientation.DOWNWARD
builder.writeln("This is row 2 cell 2")

# end row
builder.end_row()

# end table
builder.end_table()

# save document
doc.save("out.docx")

Production

créer un tableau dans un document word python

En savoir plus sur la façon de travailler avec des tableaux dans des documents Word à l’aide de Python.

Créer une liste dans un document Word à l’aide de Python

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

  • Créez un objet de la classe Document.
  • Créez un objet de la classe DocumentBuilder.
  • Définissez la mise en forme à l’aide de la méthode DocumentBuilder.listformat.applynumberdefault().
  • Insérez un élément à l’aide de la méthode DocumentBuilder.writeln(“Item 1”).
  • Insérez le deuxième élément à l’aide de la méthode DocumentBuilder.writeln(“Item 2”).
  • Pour insérer des éléments au niveau suivant de la liste, appelez la méthode DocumentBuilder.listformat.listindent() et insérez des éléments.
  • Supprimez les numéros de la liste à l’aide de la méthode DocumentBuilder.listformat.removenumbers().
  • Enregistrez le document Word à l’aide de la méthode Document.save().

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

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# set list formatting
builder.list_format.apply_number_default()

# insert item
builder.writeln("Item 1")
builder.writeln("Item 2")

# set indentation for next level of list
builder.list_format.list_indent()
builder.writeln("Item 2.1")
builder.writeln("Item 2.2")

# indent again for next level
builder.list_format.list_indent()
builder.writeln("Item 2.2.1")
builder.writeln("Item 2.2.2")

# outdent to get back to previous level
builder.list_format.list_outdent()
builder.writeln("Item 2.3")

# outdent again to get back to first level
builder.list_format.list_outdent()
builder.writeln("Item 3")

# remove numbers
builder.list_format.remove_numbers()

# save document
doc.save("out.docx")

Production

créer une liste dans un document word python

En savoir plus sur l’utilisation des listes dans les documents Word à l’aide de Python.

Insérer des images dans un document Word à l’aide de Python

Lorsque vous travaillez avec des documents Word, vous ne pouvez pas ignorer les objets graphiques tels que les images. Voyons donc comment insérer dynamiquement des images dans un document Word à l’aide de Python.

  • Créez un objet de la classe Document.
  • Créez un objet de la classe DocumentBuilder.
  • Insérez l’image à l’aide de la méthode DocumentBuilder.insertimage() et passez le chemin du fichier image en tant que paramètre.
  • Enregistrez le document Word à l’aide de la méthode Document.save().

L’exemple de code suivant montre comment insérer une image dans un document Word à l’aide de Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# add image
builder.insert_image("Logo.jpg")

# save document
doc.save("out.docx")

Production

créer une image dans un document word python

Créer une table des matières dans des documents Word à l’aide de Python

Dans divers cas, les documents Word contiennent une table des matières (TOC). La table des matières vous donne un aperçu du contenu du document Word. Les étapes suivantes montrent comment ajouter une table des matières dans des documents Word à l’aide de Python.

  • Créez un objet de la classe Document.
  • Créez un objet de la classe DocumentBuilder.
  • Insérez une table des matières à l’aide de la méthode DocumentBuilder.inserttableofcontents().
  • Insérez un saut de page après la table des matières à l’aide de la méthode DocumentBuilder.insertbreak(aw.BreakType.PAGEBREAK).
  • Après avoir ajouté/mis à jour le contenu du document, mettez à jour la table des matières à l’aide de la méthode Document.updatefields().
  • Enregistrez le document Word à l’aide de la méthode Document.save().

L’exemple de code suivant montre comment insérer une table des matières dans un document Word à l’aide de Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# insert table of contents
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u")

# start the actual document content on the second page
builder.insert_break(aw.BreakType.PAGE_BREAK)

# add content
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 1")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 1.1")
builder.writeln("Heading 1.2")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 2")
builder.writeln("Heading 3")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.1")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING3
builder.writeln("Heading 3.1.1")
builder.writeln("Heading 3.1.2")
builder.writeln("Heading 3.1.3")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.2")
builder.writeln("Heading 3.3")

# the newly inserted table of contents will be initially empty
# it needs to be populated by updating the fields in the document
doc.update_fields()

# save document
doc.save("out.docx")

Production

créer toc dans le document word python

En savoir plus sur l’utilisation de la table des matières en utilisant Python.

Lire la suite

Cet article a couvert certaines opérations de base de la création de documents Word et de l’insertion de différents éléments. Aspose.Words for Python fournit également un tas d’autres fonctionnalités que vous pouvez explorer à l’aide de la documentation.

Obtenez une licence API gratuite

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

Conclusion

Dans cet article, vous avez appris à créer des fichiers Word DOCX ou DOC en Python. De plus, vous avez vu comment insérer dynamiquement du texte, des images, des tableaux, des listes et une table des matières dans des documents Word. Vous pouvez essayer l’API et partager vos commentaires ou vos questions via notre forum.

Voir également

Conseil : Aspose fournit un convertisseur PowerPoint vers Word GRATUIT en ligne qui vous permet de créer rapidement des documents Word à partir de présentations.