Crea documenti Word da modelli con Python

2024-01-09 02:20:07

I modelli forniscono una struttura e un layout già pronti, consentendoti di risparmiare tempo e fatica nella creazione di documenti da zero. Invece di progettare il layout del documento, gli stili di formattazione e l'organizzazione delle sezioni, puoi semplicemente scegliere un modello che soddisfi le tue esigenze e iniziare ad aggiungere i tuoi contenuti. Ciò è particolarmente utile quando è necessario creare più documenti con un aspetto coerente. In questo blog esploreremo come creare documenti Word da modelli utilizzando Python.

Discuteremo tre diversi approcci per generare documenti Word da modelli:

Libreria Python per creare documenti Word da modelli

Per cominciare, dobbiamo installare il modulo Python necessario che supporti la generazione di documenti Word da modelli. In questo post del blog utilizzeremo la libreria Spire.Doc for Python .

Spire.Doc for Python offre un set completo di funzionalità per creare, leggere, modificare e convertire file Word all'interno delle applicazioni Python. Fornisce supporto continuo per vari formati Word tra cui Doc, Docx, Docm, Dot, Dotx, Dotm e altri. Inoltre, consente la conversione di alta qualità di documenti Word in diversi formati, come Word in PDF, Word in RTF, Word in HTML, Word in testo e Word in immagine.

Per installare Spire.Doc for Python, puoi eseguire il seguente comando pip:

pip install Spire.Doc

Per istruzioni dettagliate sull'installazione, fare riferimento a questa documentazione: Come installare Spire.Doc for Python in VS Code.

Crea documenti Word da modelli sostituendo il testo segnaposto in Python

Il "testo segnaposto" si riferisce al testo temporaneo che può essere facilmente sostituito con il contenuto desiderato. Per creare un documento Word da un modello sostituendo il testo segnaposto, è necessario preparare un modello che includa testo segnaposto predefinito. Questo modello può essere creato manualmente utilizzando l'applicazione Microsoft Word o generato a livello di codice con Spire.Doc for Python.

Ecco i passaggi per creare un documento Word da un modello sostituendo il testo segnaposto utilizzando Spire.Doc for Python:

  • Crea un'istanza di Document e quindi carica un modello di Word utilizzando il metodo Document.LoadFromFile().
  • Definire un dizionario che associ il testo segnaposto al testo sostitutivo corrispondente per eseguire sostituzioni nel documento.
  • Fai un giro nel dizionario.
  • Sostituisci il testo segnaposto nel documento con il testo sostitutivo corrispondente utilizzando il metodo Document.Replace().
  • Salva il documento risultante utilizzando il metodo Document.SaveToFile().

Ecco un esempio di codice che crea un documento Word da un modello sostituendo il testo segnaposto utilizzando Spire.Doc per 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

Suggerimenti: questo esempio spiega come sostituire il testo segnaposto in un modello di Word con un nuovo testo. Vale la pena notare che Spire.Doc per Python supporta la sostituzione del testo in vari scenari, inclusa la sostituzione del testo con immagini, la sostituzione del testo con tabelle, la sostituzione del testo utilizzando regex e altro ancora. Puoi trovare maggiori dettagli in questa documentazione: Python: trova e sostituisci testo in Word.

Crea documenti Word da modelli sostituendo i segnalibri in Python

I segnalibri in un documento di Word fungono da punti di riferimento che consentono di inserire o sostituire con precisione il contenuto in posizioni specifiche all'interno del documento. Per creare un documento Word da un modello sostituendo i segnalibri, è necessario preparare un modello che contenga segnalibri predefiniti. Questo modello può essere creato manualmente utilizzando l'applicazione Microsoft Word o generato a livello di codice con Spire.Doc for Python.

Ecco i passaggi per creare un documento Word da un modello sostituendo i segnalibri utilizzando Spire.Doc for Python:

  • Crea un'istanza Document e carica un documento Word utilizzando il metodo Document.LoadFromFile().
  • Definire un dizionario che associ i nomi dei segnalibri al testo sostitutivo corrispondente per eseguire sostituzioni nel documento.
  • Fai un giro nel dizionario.
  • Crea un'istanza di BookmarksNavigator e vai al segnalibro specifico in base al suo nome utilizzando il metodo BookmarkNavigator.MoveToBookmark().
  • Sostituisci il contenuto del segnalibro con il testo sostitutivo corrispondente utilizzando il metodo BookmarkNavigator.ReplaceBookmarkContent().
  • Salva il documento risultante utilizzando il metodo Document.SaveToFile().

Ecco un esempio di codice che crea un documento Word da un modello sostituendo i segnalibri utilizzando 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

Crea documenti Word da modelli eseguendo la stampa unione in Python

La stampa unione è una potente funzionalità di Microsoft Word che ti consente di creare documenti personalizzati da un modello unendolo a un'origine dati. Per creare un documento Word da un modello eseguendo la stampa unione, è necessario preparare un modello che includa campi unione predefiniti. Questo modello può essere creato manualmente utilizzando l'applicazione Microsoft Word o generato a livello di codice con Spire.Doc for Python utilizzando il seguente codice:

  • 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()

Ecco i passaggi per creare un documento Word da un modello eseguendo la stampa unione utilizzando Spire.Doc for Python:

  • Crea un'istanza di Document e quindi carica un modello di Word utilizzando il metodo Document.LoadFromFile().
  • Definire un elenco di nomi di campi di unione.
  • Definire un elenco di valori dei campi di unione.
  • Eseguire una stampa unione utilizzando i nomi dei campi e i valori dei campi specificati utilizzando il metodo Document.MailMerge.Execute().
  • Salva il documento risultante utilizzando il metodo Document.SaveToFile().

Ecco un esempio di codice che crea un documento Word da un modello eseguendo la stampa unione utilizzando 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

Ottieni una licenza gratuita

Per sperimentare appieno le funzionalità di Spire.Doc for Python senza limitazioni di valutazione, puoi richiedere una licenza di prova gratuita di 30 giorni.

Conclusione

Questo blog ha dimostrato come creare documenti Word da modelli in 3 modi diversi utilizzando Python e Spire.Doc for Python. Oltre a creare documenti Word, Spire.Doc for Python fornisce numerose funzionalità per la manipolazione di documenti Word, puoi verificarne documentazione per maggiori informazioni. Se riscontri domande, non esitare a pubblicarle sul nostro Forum o inviarli al nostro team di supporto tramite e-mail.

Guarda anche