Comment écrire des fichiers XLSX avec Python | Spire.XLS

2025-06-30 03:30:14 zaki zou

La création efficace de fichiers Excel est essentielle dans les flux de travail basés sur Python pour l'analyse de données, le reporting et l'automatisation. Parmi les nombreuses bibliothèques disponibles, Spire.XLS for Python se distingue comme une solution puissante et indépendante d'Excel qui prend en charge des fonctionnalités complexes telles que les graphiques, les formules, la mise en forme conditionnelle, le cryptage et la gestion de grands ensembles de données.

Ce guide montrera comment écrire des fichiers XLSX avec Python en utilisant Spire.XLS for Python, couvrant les détails de l'écriture de base à la mise en forme avancée, le tout en utilisant la bibliothèque Excel fiable et prête pour l'entreprise.

Écrire des fichiers XLSX avec du code Python

Comment écrire des fichiers XLSX avec Spire.XLS for Python

Pourquoi utiliser Spire.XLS for Python ?

Spire.XLS for Python est une bibliothèque riche en fonctionnalités qui permet aux développeurs de lire, d'écrire et de manipuler des fichiers Excel sans avoir besoin de Microsoft Office. Elle est conçue pour la performance et la flexibilité, ce qui la rend idéale pour les tâches d'automatisation et les rapports à grande échelle.

Principaux avantages :

  • API tout-en-un : Lecture/écriture de .xls et .xlsx, mise en forme des cellules, insertion de formules, conversion de fichiers, et plus encore.
  • Support multiplateforme : Disponible pour .NET, Java, Python, et compatible avec les environnements basés sur le cloud.
  • Fonctionnalités Excel avancées : Prend en charge les graphiques, les tableaux croisés dynamiques, la mise en forme conditionnelle et la protection.
  • Documentation et support fiables : Référence API complète, tutoriels, forum des développeurs et équipe de support.
  • Édition gratuite disponible : Idéale pour le traitement léger de fichiers Excel sans frais de licence.

Installation de Spire.XLS for Python

Vous pouvez installer la version complète ou la version gratuite de Spire.XLS en fonction de vos besoins.

Version complète :

pip install spire.xls

Version gratuite (pour les fichiers plus petits et les cas d'utilisation de base) :

pip install spire.xls.free

Étapes de base pour l'écriture de fichiers XLSX

Pour écrire dans des fichiers Excel avec Python, suivez ces étapes fondamentales :

  • Créez un nouveau classeur Excel via le constructeur Workbook().
  • Chargez un fichier XLSX existant (facultatif) avec la méthode Workbook.LoadFromFile().
  • Ajoutez ou obtenez une feuille de calcul en utilisant la méthode Workbook.Worksheets.Add() ou la méthode get_Item().
  • Accédez aux cellules via la méthode Worksheet.Range.get_Item().
  • Écrivez des données en utilisant les propriétés de la classe CellRange, telles que Value, Text, NumberValue, etc.
  • Enregistrez le classeur en utilisant la méthode Workbook.SaveToFile().

Exemple de code d'écriture de fichier XLSX de base

  • Python
from spire.xls import Workbook, ExcelVersion

# Créer un objet Workbook
workbook = Workbook()

# Obtenir la première feuille de calcul par défaut
sheet = workbook.Worksheets.get_Item(0)

# Écrire une chaîne dans la cellule B2
sheet.Range.get_Item(2, 2).Text = "Bonjour le monde!"

# Enregistrer le classeur
workbook.SaveToFile("output/BasicWorkbook.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Le fichier XLSX de sortie :

Écrire un fichier XLSX simple avec Python

Écrire différents types de données dans des fichiers XLSX avec Python

Spire.XLS offre une série de propriétés dans la classe CellRange qui permettent d'écrire divers types de données directement dans les cellules Excel, tels que des chaînes de caractères, des valeurs date-heure, des valeurs booléennes et des valeurs numériques. Cela facilite l'écriture de valeurs typées directement dans les cellules d'un fichier XLSX par les développeurs.

Types de données pris en charge et leurs propriétés

Propriété Type de valeur Fonction
NumberValue float Définit une valeur numérique
Text str Définit du texte brut
DateTimeValue datetime Définit une date et une heure
BooleanValue bool Définit une valeur booléenne
Formula str Insère une formule
HtmlString str Insère du texte formaté en HTML
Value str Définit une valeur générique

Exemple de code – Écriture de divers types de données

  • Python
from spire.xls import Workbook, ExcelVersion, DateTime, HorizontalAlignType, Stream, ImageFormatType

# Créer un objet Workbook
workbook = Workbook()

# Obtenir la première feuille de calcul par défaut
sheet = workbook.Worksheets.get_Item(0)

# Écrire du texte dans la cellule B1
sheet.Range.get_Item(1, 2).Text = "Texte brut"
# Écrire un nombre dans la cellule B2
sheet.Range.get_Item(2, 2).NumberValue = 123456
sheet.Range.get_Item(2, 2).NumberFormat = "#,##0.00"
# Écrire une date dans la cellule B3
sheet.Range.get_Item(3, 2).DateTimeValue = DateTime.get_UtcNow()
# Écrire une valeur booléenne dans la cellule B4
sheet.Range.get_Item(4, 2).BooleanValue = True
# Écrire une formule dans la cellule B5
sheet.Range.get_Item(5, 2).Formula = "B2/2"
# Écrire une chaîne HTML dans la cellule B6
sheet.Range.get_Item(6, 2).HtmlString = "<p><span style='color: blue; font-size: 18px;'>Police bleue taille 18 pixels</span></p>"
# Écrire une valeur normale dans la cellule B7
sheet.Range.get_Item(7, 2).Value = "Valeur normale"
# Insérer une image dans la cellule B8
with open("Logo.png", "rb") as f:
    imageBytes = f.read()
stream = Stream(imageBytes)
sheet.Pictures.Add(8, 2, stream, ImageFormatType.Png)

# Appliquer une mise en forme de base
sheet.Range.get_Item(1, 2, 8, 2).HorizontalAlignment = HorizontalAlignType.Left
sheet.AutoFitColumn(2)
for i in range(sheet.Range.Columns.Count):
    for j in range(sheet.Range.Rows.Count):
        sheet.Range.get_Item(j + 1, i + 1).HorizontalAlignment = HorizontalAlignType.Left

# Enregistrer le classeur dans un fichier XLSX
workbook.SaveToFile("output/WriteDataExcelCell.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Le fichier XLSX de sortie :

Écrire différents types de données dans un fichier XLSX avec du code Python

Appliquer des formats et des styles aux cellules Excel avec Python

La mise en forme joue un rôle clé pour rendre les rapports Excel clairs et professionnels. Avec Spire.XLS for Python, vous pouvez personnaliser l'apparence des cellules en utilisant des polices, des couleurs, des alignements, des formats de nombre et des styles intégrés. Ces outils aident à améliorer la lisibilité et à présenter vos données de manière soignée et cohérente, ce qui est idéal pour le reporting et l'automatisation.

L'exemple de code suivant montre comment mettre en forme des feuilles de calcul avec Python.

Mettre en forme les cellules avec police, couleur, bordure et alignement

  • Python
from spire.xls import Workbook, Color, LineStyleType, BordersLineType, HorizontalAlignType

# Créer un objet Workbook
workbook = Workbook()

# Charger le fichier XLSX
workbook.LoadFromFile("Sample.xlsx")

# Obtenir la première feuille de calcul
sheet = workbook.Worksheets.get_Item(0)

# Définir les styles de police
# Ligne d'en-tête
sheet.Rows.get_Item(0).Style.Font.FontName = "Times New Roman"
sheet.Rows.get_Item(0).Style.Font.Size = 14
sheet.Rows.get_Item(0).Style.Font.IsBold = True
# Lignes de données
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Font.FontName = "Arial"
    sheet.Rows.get_Item(i).Style.Font.Size = 12

# Définir les couleurs des cellules
# Ligne d'en-tête
sheet.Rows.get_Item(0).Style.Color = Color.FromRgb(200, 245, 230)
# Lignes de données
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Color = Color.FromRgb(240, 255, 250)

# Définir les styles de bordure
# Ligne d'en-tête
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).LineStyle = LineStyleType.Thick
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).Color = Color.get_White()
# Lignes de données
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BorderInside(LineStyleType.Thin, Color.get_Black())

# Définir l'alignement
# Ligne d'en-tête
sheet.Rows.get_Item(0).Style.HorizontalAlignment = HorizontalAlignType.Center
# Lignes de données
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.HorizontalAlignment = HorizontalAlignType.Left

# Ajuster automatiquement la largeur de la colonne
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Enregistrer le fichier Excel
workbook.SaveToFile("output/FormatXLSXFile.xlsx")
workbook.Dispose()

Le fichier XLSX de sortie :

Mettre en forme les cellules dans des fichiers XLSX avec du code Python

Définir les formats de nombre pour les cellules

  • Python
from spire.xls import Workbook, ExcelVersion

# Créer une instance de Workbook
workbook = Workbook()

# Obtenir la première feuille de calcul
sheet = workbook.Worksheets.get_Item(0)

# Mettre en forme une cellule en tant que nombre
sheet.Range.get_Item(1, 2).NumberValue = 1234567890
sheet.Range.get_Item(1, 2).NumberFormat = "[Red]#,##0;[Green]#,##0"

# Mettre en forme une cellule en tant que date
sheet.Range.get_Item(2, 2).NumberValue = 45562
sheet.Range.get_Item(2, 2).NumberFormat = "yyyy-mm-dd"

# Mettre en forme une cellule en tant qu'heure
sheet.Range.get_Item(3, 2).NumberValue = 45562
sheet.Range.get_Item(3, 2).NumberFormat = "hh:mm:ss"

# Mettre en forme une cellule en tant que devise
sheet.Range.get_Item(4, 2).NumberValue = 1234567890
sheet.Range.get_Item(4, 2).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"

# Mettre en forme une cellule en tant que pourcentage
sheet.Range.get_Item(5, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(5, 2).NumberFormat = "0.00%"

# Mettre en forme une cellule en tant que fraction
sheet.Range.get_Item(6, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(6, 2).NumberFormat = "0.00_ ?"

# Mettre en forme une cellule en tant que nombre scientifique
sheet.Range.get_Item(7, 2).NumberValue = 1234567890
sheet.Range.get_Item(7, 2).NumberFormat = "0.00E+00"

# Ajuster automatiquement la largeur de la colonne
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Enregistrer le fichier Excel
workbook.SaveToFile("output/SetNumberFormat.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Le fichier XLSX de sortie :

Définir les formats de nombre pour les cellules dans les fichiers XLSX avec Python

Appliquer des styles intégrés aux cellules

  • Python
from spire.xls import Workbook, BuiltInStyles

# Créer une instance de Workbook
workbook = Workbook()

# Charger le fichier Excel
workbook.LoadFromFile("Sample.xlsx")

# Obtenir la première feuille de calcul
sheet = workbook.Worksheets.get_Item(0)

# Appliquer le style d'en-tête intégré à la première ligne
sheet.Rows.get_Item(0).BuiltInStyle = BuiltInStyles.Heading2

# Appliquer le style de pied de page intégré aux lignes de données
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BuiltInStyle = BuiltInStyles.Accent2_20

# Ajuster automatiquement la largeur de la colonne
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Enregistrer le fichier Excel
workbook.SaveToFile("output/ApplyBuiltInStyle.xlsx")
workbook.Dispose()

Le fichier XLSX de sortie :

Appliquer des styles intégrés aux fichiers XLSX avec Python

Conclusion

Dans ce guide, nous avons exploré comment écrire des fichiers XLSX avec Python en utilisant Spire.XLS, de l'écriture de base à la mise en forme. Qu'il s'agisse de générer des rapports, d'automatiser des exportations ou de créer des applications basées sur les données, Spire.XLS for Python offre une solution fiable et efficace pour la génération de fichiers Excel.

Obtenir une licence gratuite

Vous pouvez demander une licence d'essai gratuite de 30 jours pour la version complète de Spire.XLS for Python. Cela vous permet d'explorer toutes les fonctionnalités avancées sans limitations pendant la période d'essai.

Voir aussi