Passer au contenu du pied de page
UTILISER IRONXL POUR PYTHON

Générer des documents Word à partir de données Excel en Python

La génération de modèles Word à partir de feuilles de calcul Excel à l'aide de Python offre de nombreux avantages qui peuvent améliorer considérablement l'efficacité, la précision et la présentation dans divers contextes professionnels et personnels. En tirant parti de l'automatisation, de la personnalisation et de l'intégrité des données, les professionnels peuvent s'assurer que leurs documents Word sont des outils de communication efficaces qui transmettent les informations essentielles de manière claire et précise. L'un de ces outils permettant de convertir Microsoft Excel en Microsoft Word est le package Python IronXL d' Iron Software et la bibliothèque python-docx .

Cet article examinera les étapes nécessaires pour générer des documents Word à partir de fichiers Excel.

Comment générer un document Word à partir de données Excel en Python

  1. Créez un fichier Python nommé excelToWord.py .
  2. Installez les paquets IronXL et python-docx.
  3. Créez ou ajoutez un fichier Excel au dossier du projet.
  4. Lire des documents Excel à l'aide d'IronXL.
  5. Créez un document Word et insérez des données Excel à l'aide de python-docx.

Qu'est-ce qu'IronXL ?

IronXL pour Python est une bibliothèque robuste développée par Iron Software qui permet aux développeurs de créer, lire et modifier des fichiers Excel (XLS, XLSX et CSV) dans des projets Python. Voici quelques caractéristiques et avantages clés de l'utilisation d'IronXL :

Fonctionnalités clés

  1. Aucune dépendance à Excel : IronXL ne nécessite pas l'installation de Microsoft Excel sur votre serveur, ce qui le rend idéal pour les environnements serveur sans Excel.
  2. API intuitive : IronXL fournit une API naturelle et intuitive pour travailler avec des fichiers Excel, ce qui facilite son intégration dans vos projets Python.
  3. Prise en charge de plusieurs formats : IronXL prend en charge différents formats de fichiers Excel, notamment XLS, XLSX, CSV et TSV.
  4. Style des cellules : Vous pouvez styliser les cellules avec différentes polices, tailles, arrière-plans, bordures et formats numériques.
  5. Gestion des formules : IronXL peut fonctionner avec les formules Excel et les recalculer chaque fois qu'une feuille est modifiée.
  6. Compatibilité multiplateforme : IronXL fonctionne sous Windows, macOS, Linux, Docker, Azure et AWS.

Qu'est-ce que python-docx ?

python-docx est une bibliothèque Python qui permet de créer, modifier et manipuler des documents Microsoft Word tels que les fichiers .docx . Elle fournit une API simple pour interagir avec les documents Word, vous permettant d'effectuer des tâches telles que l'ajout de texte, la mise en forme, l'insertion de tableaux et d'images, et bien plus encore.

Caractéristiques clés

1. Création de documents

Vous pouvez générer des documents Word à partir de zéro et y ajouter du contenu, notamment des paragraphes, des tableaux, des titres, etc. Ce logiciel peut également être utilisé pour modifier des documents individuels.

2. Manipulation de texte

Ajouter et modifier des paragraphes de texte. Mettez en forme le texte (par exemple, en gras, en italique, souligné, etc.) en utilisant des " séquences " (parties de texte avec des styles différents au sein d'un paragraphe). Ajoutez et mettez en forme des titres de différents niveaux.

3. Ajout de tableaux

Créez des tables avec un nombre spécifié de lignes et de colonnes. Accéder aux cellules individuelles d'un tableau et les modifier.

4. Lists

Créez des listes à puces ou numérotées avec des styles prédéfinis.

5. Travailler avec les styles

Appliquez des styles prédéfinis tels que " Titre 1 ", " Normal ", etc. Vous pouvez également définir et appliquer des styles personnalisés aux paragraphes ou au texte.

6. Insertion d'images

Insérer des images dans le document à des emplacements spécifiques. Vous pouvez redimensionner les images en spécifiant leur largeur et leur hauteur.

Prérequis

Avant de nous plonger dans le code, assurez-vous de disposer des prérequis suivants :

  1. Python installé : assurez-vous d'avoir Python installé sur votre machine. Vous pouvez le télécharger depuis le site web officiel de Python.
  2. IronXL installé : Vous devez installer le package IronXL. Vous pouvez le faire en utilisant pip.
  3. python-docx installé : Vous devez installer le paquet python-docx. Vous pouvez le faire en utilisant pip.
  4. Fichier Excel : Créez un fichier Excel d'exemple contenant des données.

Étape 1 : Créez un fichier Python nommé excelToWord.py

Ouvrez votre IDE préféré comme Visual Studio Code et créez un fichier appelé excelToWord.py .

Comment générer un document Word à partir de données Excel en Python : Figure 1 - Génération de document Excel

Étape 2 : Ajouter les paquets IronXL et python-docx

Utilisez Pip pour installer les paquets IronXL et python-docx.

pip install IronXL python-docx
pip install IronXL python-docx
SHELL

Étape 3 : Créer ou ajouter un fichier Excel au dossier du projet

Copiez le fichier Excel d'exemple dans votre dossier de code. Le fichier contient les données ci-dessous.

Comment générer un document Word à partir de données Excel en Python : Figure 2 - Exemple Excel

Étape 4 : Lire le document Excel à l'aide d'IronXL

À l'aide d'IronXL, chargez le document Excel et lisez toutes les cellules en utilisant le code ci-dessous.

import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []

# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []

# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

Étape 5 : Créer un document Word et y insérer des données Excel à l'aide de python-docx

Le processus de génération de documents Word consiste à créer un document Word et à y insérer des données lues à partir d'un fichier Excel.

# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
PYTHON

Code complet pour la génération de documents Word

# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells

for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the Word document
doc.save("sample.docx")
# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells

for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the Word document
doc.save("sample.docx")
PYTHON

Explication du code

Ce script Python remplit deux tâches principales.

1. Lecture de données à partir d'un fichier Excel avec IronXL

  • Le script commence par configurer une licence pour la bibliothèque IronXL , utilisée pour la gestion des fichiers Excel en Python.
  • Il charge ensuite un fichier Excel ( sample.xlsx ) et sélectionne la première feuille de calcul du fichier.
  • Le script lit les données de la feuille de calcul, en parcourant toutes les lignes et toutes les colonnes. Il collecte les valeurs de chaque cellule dans une liste 2D (données), où chaque ligne de la feuille Excel correspond à une sous-liste au sein des données.
  • Les valeurs des cellules sont affichées sur la console au fur et à mesure de leur lecture.

2. Création d'un document Word à l'aide de python-docx

  • Un nouveau document Word est créé à l'aide de la bibliothèque python-docx .
  • Le script ajoute un titre (" Exportation de données Excel à l'aide de Python Docx ") en haut du document à l'aide d'un en-tête. Il crée ensuite un tableau dans le document, dont la première ligne contient les en-têtes de la première ligne de la feuille Excel, et les lignes suivantes contiennent les données correspondantes du fichier Excel.
  • Enfin, le document Word est enregistré sous le nom sample.docx .

Le script lit les données d'un fichier Excel ( sample.xlsx ), les traite et exporte les données dans un tableau d'un nouveau document Word ( sample.docx ). La première ligne de la feuille Excel sert d'en-tête au tableau, et chaque ligne de données de la feuille Excel est ajoutée au document Word comme une ligne du tableau.

Sortie

Comment générer un document Word à partir de données Excel en Python : Figure 3 - Conversion d'Excel en Word

Fichier Word

Comment générer un document Word à partir de données Excel en Python : Figure 4 - Format du document Word

Licence IronXL (essai disponible)

IronXL fonctionne avec un fichier de licence valide joint au code. Les utilisateurs peuvent facilement obtenir une licence d'essai sur la page des licences .

Pour utiliser la licence, insérez la clé de licence quelque part dans le code, comme ci-dessous, avant d'utiliser la bibliothèque IronXL.

ironxl.License.LicenseKey = "Your License Key"
ironxl.License.LicenseKey = "Your License Key"
PYTHON

Conclusion

L'exemple de code illustre une méthode efficace pour lire des données à partir d'un fichier Excel à l'aide d'IronXL , puis exporter ces données dans un document Word à l'aide de python-docx . Le processus comporte deux étapes principales :

  1. Extraction de données depuis Excel : Le script charge un fichier Excel et extrait les données de sa première feuille de calcul. Il parcourt les lignes et les colonnes pour collecter les valeurs des cellules dans une liste, qui peut être facilement manipulée ou enregistrée.
  2. Création et remplissage d'un document Word : À l'aide de la bibliothèque python-docx, le script crée un nouveau document Word, ajoute un titre et met en forme les données Excel extraites dans un tableau du document Word. Il place automatiquement la première ligne de données Excel en tant qu'en-têtes et les lignes suivantes en tant que données du tableau.

Cette approche permet un transfert de données fluide d'Excel vers Word, ce qui peut s'avérer utile pour des tâches telles que la génération de rapports, l'exportation de données ou l'automatisation de documents. L'association d' IronXL pour la gestion des fichiers Excel et de python-docx pour la création de documents Word offre une solution performante pour travailler avec ces formats de fichiers en Python.

Questions Fréquemment Posées

Comment puis-je convertir des données Excel en un document Word en utilisant Python ?

Vous pouvez convertir des données Excel en un document Word en utilisant Python en utilisant la bibliothèque IronXL pour lire et traiter les fichiers Excel, puis en utilisant la bibliothèque python-docx pour créer et remplir un document Word.

Quels sont les avantages d'utiliser IronXL et python-docx ensemble ?

La combinaison de IronXL et python-docx permet une intégration et une automatisation transparentes des conversions de documents Excel en Word. IronXL offre des fonctionnalités telles que la lecture et la modification de fichiers Excel sans avoir besoin de Microsoft Excel, tandis que python-docx fournit une API simple pour manipuler des documents Word.

Comment lire un fichier Excel en Python sans installer Microsoft Excel ?

Vous pouvez lire un fichier Excel en Python sans installer Microsoft Excel en utilisant la bibliothèque IronXL. IronXL vous permet de charger des fichiers Excel et d'accéder à leurs données de manière programmatique.

Quel est le processus pour créer un document Word à partir de données Excel ?

Le processus consiste à utiliser IronXL pour lire les données d'un fichier Excel, puis à utiliser python-docx pour créer un document Word dans lequel les données Excel sont insérées sous forme de tableaux ou de blocs de texte.

IronXL peut-il travailler avec plusieurs formats de fichiers Excel ?

Oui, IronXL prend en charge plusieurs formats de fichiers Excel tels que XLS, XLSX, et CSV, fournissant une flexibilité dans la gestion de différents types de fichiers Excel.

Comment puis-je installer IronXL et python-docx dans mon environnement Python ?

Vous pouvez installer IronXL et python-docx dans votre environnement Python en utilisant pip avec la commande : pip install IronXL python-docx.

Quels sont les bénéfices de l'automatisation des conversions de documents Excel en Word ?

L'automatisation des conversions de documents Excel en Word peut améliorer l'efficacité, la précision et la présentation en réduisant les tâches manuelles, en minimisant les erreurs et en permettant un formatage cohérent et une intégrité des données à travers les documents.

Comment styliser les cellules Excel en utilisant IronXL ?

IronXL fournit des fonctionnalités pour styliser les cellules Excel, vous permettant de personnaliser l'apparence des cellules, telles que la définition des polices, couleurs, et bordures, ce qui peut être utile pour le formatage avant de transférer les données vers Word.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite