
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
- Créez un fichier Python nommé
excelToWord.py. - Installez les paquets IronXL et python-docx.
- Créez ou ajoutez un fichier Excel au dossier du projet.
- Lire des documents Excel à l'aide d'IronXL.
- Créez un document Word et insérez des données Excel à l'aide de python-docx.
Qu'est-ce qu'IronXL ?
IronXL for 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
- 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.
- 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.
- Prise en charge de plusieurs formats : IronXL prend en charge différents formats de fichiers Excel, notamment XLS, XLSX, CSV et TSV.
- Style des cellules : Vous pouvez styliser les cellules avec différentes polices, tailles, arrière-plans, bordures et formats numériques.
- Gestion des formules : IronXL peut fonctionner avec les formules Excel et les recalculer chaque fois qu'une feuille est modifiée.
- 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 crée, modifie et travaille avec 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. Listes
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 :
- Python installé : assurez-vous d'avoir Python installé sur votre machine. Vous pouvez le télécharger depuis le site web officiel de Python.
- Installation IronXL : Vous devez installer le package IronXL . Vous pouvez le faire en utilisant pip.
- python-docx installé : Vous devez installer le paquet python-docx. Vous pouvez le faire en utilisant pip.
- 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 nommé excelToWord.py.

Étape 2 : Ajouter les paquets IronXL et python-docx
Utilisez Pip pour installer les paquets IronXL et python-docx.
pip install IronXL python-docx
É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.

É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)
É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")
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")
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 dans 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

Fichier 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"
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 :
- 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.
- 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.

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 et créer des manuels bien structurés et visuellement attrayants.
Articles connexes


