Table des matières
- Pourquoi utiliser Spire.XLS pour convertir un DataFrame Pandas en Excel
- Prérequis pour convertir un DataFrame Pandas en Excel
- Exporter un seul DataFrame Pandas vers Excel avec mise en forme
- Convertir plusieurs DataFrames Pandas en un seul fichier Excel
- Écrire des DataFrames Pandas dans un fichier Excel existant
- Personnalisation avancée pour l'exportation de DataFrames Pandas vers Excel
- Conclusion
- FAQ
Installer avec Pypi
pip install pandas spire.xls
Liens connexes

Travailler avec des données tabulaires est une tâche courante pour les développeurs Python, et Pandas est la bibliothèque de référence pour la manipulation et l'analyse de données. Souvent, les développeurs ont besoin d'exporter des DataFrames Pandas vers Excel pour les rapports, la collaboration en équipe ou une analyse plus approfondie des données. Bien que Pandas fournisse la fonction to_excel pour les exportations de base, la création de rapports Excel professionnels avec des en-têtes formatés, des cellules stylisées, plusieurs feuilles et des graphiques peut être difficile.
Ce tutoriel montre comment écrire un seul DataFrame ou plusieurs DataFrames dans Excel en utilisant Spire.XLS for Python, une bibliothèque Excel multifonctionnelle qui permet une personnalisation complète des fichiers Excel directement depuis Python, sans qu'il soit nécessaire d'installer Microsoft Excel.
Table des matières
- Pourquoi utiliser Spire.XLS pour convertir un DataFrame Pandas en Excel
- Prérequis pour convertir un DataFrame Pandas en Excel
- Exporter un seul DataFrame Pandas vers Excel avec mise en forme
- Convertir plusieurs DataFrames Pandas en un seul fichier Excel
- Écrire des DataFrames Pandas dans un fichier Excel existant
- Personnalisation avancée pour l'exportation de DataFrames Pandas vers Excel
- Conclusion
- FAQ
Pourquoi utiliser Spire.XLS pour convertir un DataFrame Pandas en Excel
Bien que Pandas offre une fonctionnalité d'exportation Excel de base, Spire.XLS étend cela en donnant un contrôle total sur la création de fichiers Excel. Au lieu de simplement écrire des données brutes, les développeurs peuvent :
- Organiser plusieurs DataFrames dans des feuilles séparées au sein d'un même classeur.
- Personnaliser les en-têtes, les polices, les couleurs et le formatage des cellules pour produire des mises en page professionnelles.
- Ajuster automatiquement les colonnes et ajuster la hauteur des lignes pour une meilleure lisibilité.
- Ajouter des graphiques, des formules et d'autres fonctionnalités Excel directement depuis Python
Prérequis pour convertir un DataFrame Pandas en Excel
Avant d'exporter un DataFrame Pandas vers Excel, assurez-vous d'avoir installé les bibliothèques requises suivantes. Vous pouvez le faire en exécutant la commande suivante dans le terminal de votre projet :
pip install pandas spire.xls
Ces bibliothèques vous permettent d'écrire des DataFrames dans Excel avec plusieurs feuilles, une mise en forme personnalisée, des graphiques attrayants et des mises en page structurées.
Exporter un seul DataFrame Pandas vers Excel avec mise en forme
L'exportation d'un seul DataFrame vers un fichier Excel est le scénario le plus courant. En utilisant Spire.XLS, vous pouvez non seulement exporter votre DataFrame, mais aussi formater les en-têtes, styliser les cellules et ajouter des graphiques pour donner à votre rapport un aspect professionnel.
Parcourons ce processus étape par étape.
Étape 1 : Créer un DataFrame d'exemple
Tout d'abord, nous devons créer un DataFrame. Ici, nous avons les noms des employés, les départements et les salaires. Vous pouvez, bien sûr, remplacer cela par votre propre jeu de données.
import pandas as pd
from spire.xls import *
# Create a simple DataFrame
df = pd.DataFrame({
'Employee': ['Alice', 'Bob', 'Charlie'],
'Department': ['HR', 'Finance', 'IT'],
'Salary': [5000, 6000, 7000]
})
Étape 2 : Créer un classeur et accéder à la première feuille
Maintenant, nous allons créer un nouveau classeur Excel et préparer la première feuille de calcul. Donnons-lui un nom significatif pour qu'il soit facile à comprendre.
# Create a new workbook
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "Employee Data"
Étape 3 : Écrire les en-têtes de colonne
Nous écrirons les en-têtes sur la première ligne, les mettrons en gras et ajouterons un fond gris clair, pour que tout soit bien présenté.
# Write column headers
for colIndex, colName in enumerate(df.columns, start=1):
cell = sheet.Range[1, colIndex]
cell.Text = colName
cell.Style.Font.IsBold = True # Make headers bold
cell.Style.Color = Color.get_LightGray() # Light gray background
Étape 4 : Écrire les lignes de données
Ensuite, nous écrivons chaque ligne du DataFrame. Pour les nombres, nous utilisons la propriété NumberValue afin qu'Excel puisse les reconnaître pour les calculs et les graphiques.
# Write data rows
for rowIndex, row in enumerate(df.values, start=2):
for colIndex, value in enumerate(row, start=1):
cell = sheet.Range[rowIndex, colIndex]
if isinstance(value, (int, float)):
cell.NumberValue = value
else:
cell.Text = str(value)
Étape 5 : Appliquer des bordures et ajuster automatiquement les colonnes
Pour donner à votre feuille Excel une apparence soignée, semblable à un tableau, ajoutons des bordures et ajustons automatiquement la largeur des colonnes.
# Apply borders and auto-fit columns
usedRange = sheet.AllocatedRange
usedRange.BorderAround(LineStyleType.Thin, Color.get_Black()) # Outside borders
usedRange.BorderInside(LineStyleType.Thin, Color.get_Black()) # Inside borders
usedRange.AutoFitColumns()
Étape 6 : Ajouter un graphique pour visualiser les données
Les graphiques vous aident à comprendre rapidement les tendances. Ici, nous allons créer un histogramme comparant les salaires.
# Add a chart
chart = sheet.Charts.Add()
chart.ChartType = ExcelChartType.ColumnClustered
chart.DataRange = sheet.Range["A1:C4"] # Data range for chart
chart.SeriesDataFromRange = False
chart.LeftColumn = 5 # Chart position
chart.TopRow = 1
chart.RightColumn = 10
chart.BottomRow = 16
chart.ChartTitle = "Employee Salary Comparison"
chart.ChartTitleArea.Font.Size = 12
chart.ChartTitleArea.Font.IsBold = True
Étape 7 : Enregistrer le classeur
Enfin, enregistrez le classeur à l'emplacement de votre choix.
# Save the Excel file
workbook.SaveToFile("DataFrameWithChart.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Résultat :
Le fichier Excel XLSX généré à partir du DataFrame Pandas ressemble à ceci :

Une fois le fichier Excel généré, il peut être traité ultérieurement, par exemple en le convertissant en PDF pour un partage facile :
workbook.SaveToFile("ToPdf.pdf", FileFormat.PDF)
Pour plus de détails, consultez le guide sur la conversion d'Excel en PDF en Python.
Convertir plusieurs DataFrames Pandas en un seul fichier Excel
Lors de la création de rapports Excel, plusieurs jeux de données doivent souvent être placés sur des feuilles séparées. En utilisant Spire.XLS, chaque DataFrame Pandas peut être écrit sur sa propre feuille de calcul, garantissant que les données associées sont organisées de manière claire et faciles à analyser. Les étapes suivantes illustrent ce processus.
Étape 1 : Créer plusieurs DataFrames d'exemple
Avant l'exportation, nous créons deux DataFrames distincts - un pour les informations sur les employés et un autre pour les produits. Chaque DataFrame sera placé dans sa propre feuille Excel.
import pandas as pd
from spire.xls import *
# Sample DataFrames
df1 = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
df2 = pd.DataFrame({'Product': ['Laptop', 'Phone'], 'Price': [1000, 500]})
# List of DataFrames with corresponding sheet names
dataframes = [
(df1, "Employees"),
(df2, "Products")
]
Ici, dataframes est une liste de tuples qui associe chaque DataFrame au nom de la feuille dans laquelle il doit apparaître.
Étape 2 : Créer un nouveau classeur
Ensuite, nous créons un nouveau classeur Excel pour stocker tous les DataFrames.
# Create a new workbook
workbook = Workbook()
Cela initialise un classeur vide avec trois feuilles par défaut. Nous les renommerons et les remplirons à l'étape suivante.
Étape 3 : Parcourir chaque DataFrame et l'écrire dans sa propre feuille
Au lieu d'écrire chaque DataFrame individuellement, nous pouvons parcourir notre liste et les traiter de la même manière. Cela réduit le code dupliqué et facilite la gestion de plus de jeux de données.
for i, (df, sheet_name) in enumerate(dataframes):
# Get or create a sheet
if i < workbook.Worksheets.Count:
sheet = workbook.Worksheets[i]
else:
sheet = workbook.Worksheets.Add()
sheet.Name = sheet_name
# Write headers with bold font and background color
for colIndex, colName in enumerate(df.columns, start=1):
cell = sheet.Range[1, colIndex]
cell.Text = colName
cell.Style.Font.IsBold = True
cell.Style.Color = Color.get_LightGray()
sheet.Columns[colIndex - 1].ColumnWidth = 15 # Set fixed column width
# Write rows of data
for rowIndex, row in enumerate(df.values, start=2):
for colIndex, value in enumerate(row, start=1):
cell = sheet.Range[rowIndex, colIndex]
if isinstance(value, (int, float)):
cell.NumberValue = value
else:
cell.Text = str(value)
# Apply thin borders around the used range
usedRange = sheet.AllocatedRange
usedRange.BorderAround(LineStyleType.Thin, Color.get_Black()) # Outside borders
usedRange.BorderInside(LineStyleType.Thin, Color.get_Black()) # Inside borders
En utilisant cette boucle, nous pouvons facilement ajouter plus de DataFrames à l'avenir sans réécrire le même code.
Étape 4 : Enregistrer le classeur
Enfin, nous enregistrons le fichier Excel. Les deux jeux de données sont maintenant soigneusement organisés dans un seul fichier avec des feuilles séparées, des en-têtes formatés et des bordures appropriées.
# Save the workbook
workbook.SaveToFile("MultipleDataFrames.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Votre fichier Excel est maintenant prêt à être partagé ou analysé plus en profondeur.
Résultat :

Le fichier MultipleDataFrames.xlsx contient deux feuilles :
- Employés (avec noms et âges)
- Produits (avec détails et prix des produits)
Cette organisation rend les fichiers Excel multi-rapports propres et faciles à naviguer.
Écrire des DataFrames Pandas dans un fichier Excel existant
Dans certains cas, au lieu de créer un nouveau fichier Excel, vous devrez peut-être écrire des DataFrames dans un classeur existant. Cela peut être facilement réalisé en chargeant le classeur existant, en ajoutant une nouvelle feuille ou en accédant à la feuille souhaitée, et en écrivant les données du DataFrame en utilisant la même logique.
Le code suivant montre comment écrire un DataFrame Pandas dans un fichier Excel existant :
import pandas as pd
from spire.xls import *
# Load an existing Excel file
workbook = Workbook()
workbook.LoadFromFile("MultipleDataFrames.xlsx")
# Create a new DataFrame to add
new_df = pd.DataFrame({
'Region': ['North', 'South', 'East', 'West'],
'Sales': [12000, 15000, 13000, 11000]
})
# Add a new worksheet for the new DataFrame
new_sheet = workbook.Worksheets.Add("Regional Sales")
# Write headers
for colIndex, colName in enumerate(new_df.columns, start=1):
cell = new_sheet.Range[1, colIndex]
cell.Text = colName
cell.Style.Font.IsBold = True
cell.Style.Color = Color.get_LightGray()
new_sheet.Columns[colIndex - 1].ColumnWidth = 15
# Write data rows
for rowIndex, row in enumerate(new_df.values, start=2):
for colIndex, value in enumerate(row, start=1):
cell = new_sheet.Range[rowIndex, colIndex]
if isinstance(value, (int, float)):
cell.NumberValue = value
else:
cell.Text = str(value)
# Save the changes
workbook.SaveToFile("DataFrameToExistingWorkbook.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Personnalisation avancée pour l'exportation de DataFrames Pandas vers Excel
Au-delà des exportations de base, les DataFrames Pandas peuvent être personnalisés dans Excel pour répondre à des exigences de rapport spécifiques. Des options avancées, telles que la sélection de colonnes spécifiques et l'inclusion ou l'exclusion de l'index, vous permettent de créer des fichiers Excel plus propres, plus lisibles et professionnels. Les exemples suivants montrent comment appliquer ces personnalisations.
1. Sélectionner des colonnes spécifiques
Parfois, vous n'avez pas besoin d'exporter toutes les colonnes d'un DataFrame. En sélectionnant uniquement les colonnes pertinentes, vous pouvez garder vos rapports Excel concis et ciblés. Le code suivant montre comment parcourir les colonnes choisies lors de l'écriture des en-têtes et des lignes :
import pandas as pd
from spire.xls import *
# Create a DataFrame
df = pd.DataFrame({
'Employee': ['Alice', 'Bob', 'Charlie'],
'Department': ['HR', 'Finance', 'IT'],
'Salary': [5000, 6000, 7000]
})
# Set the columns to export
columns_to_export = ['Employee', 'Department']
# Create a new workbook and access the first sheet
workbook = Workbook()
sheet = workbook.Worksheets[0]
# Write headers
for colIndex, colName in enumerate(columns_to_export, start=1):
sheet.Range[1, colIndex].Text = colName
# Write rows
for rowIndex, row in enumerate(df[columns_to_export].values, start=2):
for colIndex, value in enumerate(row, start=1):
sheet.Range[rowIndex, colIndex].Text = value
# Save the Excel file
workbook.SaveToFile("select_columns.xlsx")
workbook.Dispose()
2. Inclure ou exclure l'index
Par défaut, l'index du DataFrame n'est pas inclus dans l'exportation. Si votre rapport nécessite des identifiants de ligne ou des index numériques, vous pouvez les ajouter manuellement. Cet extrait de code montre comment inclure l'index à côté des colonnes sélectionnées :
# Write header for index
sheet.Range[1, 1].Text = "Index"
# Write index values (numeric)
for rowIndex, idx in enumerate(df.index, start=2):
sheet.Range[rowIndex, 1].NumberValue = idx # Use NumberValue for numeric
# Write headers for other columns
for colIndex, colName in enumerate(columns_to_export, start=2):
sheet.Range[1, colIndex].Text = colName
# Write the data rows
for rowIndex, row in enumerate(df[columns_to_export].values, start=2):
for colIndex, value in enumerate(row, start=2):
if isinstance(value, (int, float)):
sheet.Range[rowIndex, colIndex].NumberValue = value
else:
sheet.Range[rowIndex, colIndex].Text = str(value)
# Save the workbook
workbook.SaveToFile("include_index.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Conclusion
L'exportation d'un DataFrame Pandas vers Excel est simple, mais la production de rapports professionnels et bien formatés nécessite un contrôle supplémentaire. En utilisant Pandas pour la préparation des données et Spire.XLS for Python pour créer et formater des fichiers Excel, vous pouvez générer des classeurs structurés, lisibles et visuellement organisés. Cette approche fonctionne aussi bien pour les DataFrames uniques que pour les ensembles de données multiples, ce qui facilite la création de rapports Excel prêts pour l'analyse, le partage ou une manipulation ultérieure.
FAQ
Q1 : Comment puis-je exporter un DataFrame Pandas vers Excel en Python ?
R1 : Vous pouvez utiliser des bibliothèques comme Spire.XLS pour écrire un DataFrame dans un fichier Excel. Cela vous permet de transférer des données tabulaires de Python vers Excel tout en gardant le contrôle sur la mise en forme et la mise en page.
Q2 : Puis-je exporter plus d'un DataFrame dans un seul fichier Excel ?
R2 : Oui. Plusieurs DataFrames peuvent être écrits sur des feuilles séparées dans le même classeur. Cela aide à garder les ensembles de données associés organisés dans un seul fichier.
Q3 : Comment ajouter des en-têtes et formater des cellules dans Excel à partir d'un DataFrame ?
R3 : Les en-têtes peuvent être mis en gras, colorés ou avoir des largeurs fixes. Les valeurs numériques peuvent être stockées en tant que nombres et le texte en tant que chaînes de caractères. La mise en forme améliore la lisibilité des rapports.
Q4 : Est-il possible d'inclure des graphiques dans le fichier Excel exporté ?
R4 : Oui. Des graphiques tels que des histogrammes ou des graphiques linéaires peuvent être ajoutés en fonction des données de votre DataFrame pour aider à visualiser les tendances ou les comparaisons.
Q5 : Ai-je besoin d'avoir Microsoft Excel installé pour exporter des DataFrames ?
R5 : Pas nécessairement. Certaines bibliothèques, y compris Spire.XLS, peuvent créer et formater des fichiers Excel entièrement en Python sans dépendre de l'installation d'Excel.