Créer des documents Word à partir de modèles avec Python

2024-01-09 02:17:23

Les modèles fournissent une structure et une mise en page prêtes à l'emploi, vous permettant d'économiser du temps et des efforts lors de la création de documents à partir de zéro. Au lieu de concevoir la mise en page du document, les styles de formatage et l'organisation des sections, vous pouvez simplement choisir un modèle qui répond à vos besoins et commencer à ajouter votre contenu. Ceci est particulièrement utile lorsque vous devez créer plusieurs documents avec une apparence cohérente. Dans ce blog, nous explorerons comment créer des documents Word à partir de modèles en utilisant Python.

Nous discuterons de trois approches différentes pour générer des documents Word à partir de modèles :

Bibliothèque Python pour créer des documents Word à partir de modèles

Pour commencer, nous devons installer le module Python nécessaire qui prend en charge la génération de documents Word à partir de modèles. Dans cet article de blog, nous utiliserons la bibliothèque Spire.Doc for Python.

Spire.Doc for Python offre un ensemble complet de fonctionnalités pour créer, lire, éditer et convertir des fichiers Word dans les applications Python. Il offre une prise en charge transparente de divers formats Word, notamment Doc, Docx, Docm, Dot, Dotx, Dotm, etc. De plus, il permet une conversion de haute qualité de documents Word vers différents formats, tels que Word en PDF, Word en RTF, Word en HTML, Word en Text et Word to Image.

Pour installer Spire.Doc for Python, vous pouvez exécuter la commande pip suivante :

pip install Spire.Doc

Pour des instructions d'installation détaillées, veuillez vous référer à cette documentation : Comment installer Spire.Doc for Python dans VS Code.

Créez des documents Word à partir de modèles en remplaçant le texte d'espace réservé en Python

Le « texte d'espace réservé » fait référence à un texte temporaire qui peut être facilement remplacé par le contenu souhaité. Pour créer un document Word à partir d'un modèle en remplaçant le texte d'espace réservé, vous devez préparer un modèle comprenant un texte d'espace réservé prédéfini. Ce modèle peut être créé manuellement à l'aide de l'application Microsoft Word ou généré par programme avec Spire.Doc for Python.

Voici les étapes pour créer un document Word à partir d'un modèle en remplaçant le texte d'espace réservé à l'aide de Spire.Doc for Python:

  • Créez une instance de document, puis chargez un modèle Word à l'aide de la méthode Document.LoadFromFile().
  • Définissez un dictionnaire qui mappe le texte d'espace réservé au texte de remplacement correspondant pour effectuer des remplacements dans le document.
  • Parcourez le dictionnaire.
  • Remplacez le texte d'espace réservé dans le document par le texte de remplacement correspondant à l'aide de la méthode Document.Replace().
  • Enregistrez le document résultant à l'aide de la méthode Document.SaveToFile().

Voici un exemple de code qui crée un document Word à partir d'un modèle en remplaçant le texte d'espace réservé à l'aide de Spire.Doc for Python:

  • Python
from spire.doc import *
from spire.doc.common import *

# Specify the input and output file paths
inputFile = "Placeholder_Template.docx"
outputFile = "CreateDocumentByReplacingPlaceholderText.docx"

# Create a Document object
document = Document()
# Load a Word template with placeholder text
document.LoadFromFile(inputFile)

# Create a dictionary to store the placeholder text and its corresponding replacement text
# Each key represents a placeholder, while the corresponding value represents the replacement text
text_replacements = {
    "{name}": "John Smith",
    "{email}": "johnsmith@example.com",
    "{telephone}": "(123) 456-7890",
    "{address}": "123 Main Street, A City, B State",
    "{education}": "B.S. in Computer Science \nXYZ University \n2010 - 2014",
    "{experience}": "Software Engineer \nABC Company \n2015 - Present",
    "{skills}": "Programming (Python, Java, C++) \nProject Management \nProblem Solving",
    "{projects}": "Developed a mobile app for XYZ Company, resulting in a 20% increase in user engagement. \nLed a team of 5 developers to successfully deliver a complex software project on time and within budget.",
    "{certifications}": "Project Management Professional (PMP) \nMicrosoft Certified: Azure Developer Associate",
    "{languages}": "English (Fluent) \nSpanish (Intermediate)",
    "{interests}": "Traveling, Photography, Reading"
}

# Loop through the dictionary
for placeholder_text, replacement_text in text_replacements.items():
    # Replace the placeholder text in the document with the replacement text
    document.Replace(placeholder_text, replacement_text, False, False)

# Save the resulting document
document.SaveToFile(outputFile, FileFormat.Docx2016)
document.Close()

Create Word Documents from Templates with Python

Conseils: Cet exemple explique comment remplacer le texte d'espace réservé dans un modèle Word par un nouveau texte. Il convient de noter que Spire.Doc pour Python prend en charge le remplacement de texte dans divers scénarios, notamment le remplacement de texte par des images, le remplacement de texte par des tableaux, le remplacement de texte à l'aide d'expressions régulières, etc. Vous pouvez trouver plus de détails dans cette documentation : Python : rechercher et remplacer du texte dans Word.

Créez des documents Word à partir de modèles en remplaçant les signets en Python

Les signets dans un document Word servent de points de référence qui vous permettent d'insérer ou de remplacer avec précision du contenu à des emplacements spécifiques du document. Pour créer un document Word à partir d'un modèle en remplaçant les signets, vous devez préparer un modèle contenant des signets prédéfinis. Ce modèle peut être créé manuellement à l'aide de l'application Microsoft Word ou généré par programme avec Spire.Doc for Python.

Voici les étapes pour créer un document Word à partir d'un modèle en remplaçant les signets à l'aide de Spire.Doc for Python:

  • Créez une instance de document et chargez un document Word à l'aide de la méthode Document.LoadFromFile().
  • Définissez un dictionnaire qui mappe les noms de signets au texte de remplacement correspondant pour effectuer des remplacements dans le document.
  • Parcourez le dictionnaire.
  • Créez une instance de BookmarksNavigator et accédez au signet spécifique par son nom à l'aide de la méthode BookmarkNavigator.MoveToBookmark().
  • Remplacez le contenu du signet par le texte de remplacement correspondant à l'aide de la méthode BookmarkNavigator.ReplaceBookmarkContent().
  • Enregistrez le document résultant à l'aide de la méthode Document.SaveToFile().

Voici un exemple de code qui crée un document Word à partir d'un modèle en remplaçant les signets à l'aide de Spire.Doc for Python :

  • Python
from spire.doc import *
from spire.doc.common import *

# Create a Document object
document = Document()
# Load a Word template with bookmarks
document.LoadFromFile("Template_Bookmark.docx")

# Create a dictionary to store the bookmark names and their corresponding replacement text
# Each key represents a bookmark name, while the corresponding value represents the replacement text
bookmark_replacements = {
    "introduction": "In today's digital age, effective communication is crucial.",
    "methodology": "Our research approach focuses on gathering qualitative data.",
    "results": "The analysis reveals significant findings supporting our hypothesis.",
    "conclusion": "Based on our findings, we recommend further investigation in this field."
}

# Loop through the dictionary
for bookmark_name, replacement_text in bookmark_replacements.items():
    # Replace the content of the bookmarks in the document with the corresponding replacement text
    bookmarkNavigator = BookmarksNavigator(document)
    bookmarkNavigator.MoveToBookmark(bookmark_name)
    bookmarkNavigator.ReplaceBookmarkContent(replacement_text, True)
    # Remove the bookmarks from the document
    document.Bookmarks.Remove(bookmarkNavigator.CurrentBookmark)

# Save the resulting document
document.SaveToFile("CreateDocumentByReplacingBookmark.docx", FileFormat.Docx2016)
document.Close()

Create Word Documents from Templates with Python

Créez des documents Word à partir de modèles en effectuant un publipostage en Python

Le publipostage est une fonctionnalité puissante de Microsoft Word qui vous permet de créer des documents personnalisés à partir d'un modèle en le fusionnant avec une source de données. Pour créer un document Word à partir d'un modèle en effectuant un publipostage, vous devez préparer un modèle comprenant des champs de fusion prédéfinis. Ce modèle peut être créé manuellement à l'aide de l'application Microsoft Word ou généré par programme avec Spire.Doc pour Python à l'aide du code suivant :

  • Python
from spire.doc import *
from spire.doc.common import *

# Create a Document object
document = Document()
# Add a section
section = document.AddSection()
# Set page margins
section.PageSetup.Margins.All = 72.0

# Add a paragraph
paragraph = section.AddParagraph()
# Add text to the paragraph
paragraph.AppendText("Customer Name: ")

# Add a paragraph
paragraph = section.AddParagraph()
# Add a merge field to the paragraph
paragraph.AppendField("Recipient Name", FieldType.FieldMergeField)

# Save the resulting document
document.SaveToFile("Template.docx", FileFormat.Docx2013)
document.Close()

Voici les étapes pour créer un document Word à partir d'un modèle en effectuant un publipostage à l'aide de Spire.Doc for Python:

  • Créez une instance de document, puis chargez un modèle Word à l'aide de la méthode Document.LoadFromFile().
  • Définissez une liste de noms de champs de fusion.
  • Définissez une liste de valeurs de champs de fusion.
  • Effectuez un publipostage en utilisant les noms de champs et les valeurs de champs spécifiés à l'aide de la méthode Document.MailMerge.Execute().
  • Enregistrez le document résultant à l'aide de la méthode Document.SaveToFile().

Voici un exemple de code qui crée un document Word à partir d'un modèle en effectuant un publipostage à l'aide de Spire.Doc for Python :

  • Python
from spire.doc import *
from spire.doc.common import *

# Create a Document object
document = Document()
# Load a Word template with merge fields
document.LoadFromFile("Template_MergeFields.docx")

# Define a list of field names
filedNames = ["Recipient Name", "Company Name", "Amount", "Due Date", "Payment Method", "Sender Name", "Title", "Phone"]

# Define a list of field values
filedValues = ["John Smith",  "ABC Company", "$500", DateTime.get_Now().Date.ToString(), "PayPal", "Sarah Johnson", "Accounts Receivable Manager", "123-456-7890"]

# Perform a mail merge operation using the specified field names and field values
document.MailMerge.Execute(filedNames, filedValues)

# Save the resulting document
document.SaveToFile("CreateDocumentByMailMerge.docx", FileFormat.Docx2016)
document.Close()

Create Word Documents from Templates with Python

Obtenez une licence gratuite

Pour profiter pleinement des capacités de Spire.Doc for Python sans aucune limitation d'évaluation, vous pouvez demander une licence d'essai gratuite de 30 jours.

Conclusion

Ce blog a montré comment créer des documents Word à partir de modèles de 3 manières différentes en utilisant Python et Spire.Doc for Python. En plus de créer des documents Word, Spire.Doc for Python fournit de nombreuses fonctionnalités pour manipuler des documents Word, vous pouvez consulter sa documentation pour plus d'informations. Si vous rencontrez des questions, n'hésitez pas à les publier sur notre forum ou envoyez-les à notre équipe d'assistance via e-mail.

Voir également