Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Génération d'un fichier .xlsx

L'exemple de code suivant vous montre comment produire un fichier Excel au format .xlsx en utilisant le module « xlsxwriter ». Ce module ne fait pas partie de la distribution Python de base. Il est donc nécessaire de l'installer via l'outil « pip » (Pip Installs Packages).

$> sudo pip3 install xlsxwriter

Ce module est relativement simple d'utilisation, comme en atteste l'exemple de code suivant.

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
#!/usr/bin/python3
# -*- coding: utf-8 -*- 

import xlsxwriter

# Les données à exporter
database = (
    ("James", "Bond", "007@mi6.uk"),
    ("Jason", "Bourne", "treadstone@cia.us"),
    ("Johnny", "English", "bean@mi0.uk")
)

# On crée un nouveau classeur
with xlsxwriter.Workbook("export.xlsx") as workbook:

    # On y ajoute une première feuille
    worksheet = workbook.add_worksheet("Spies")
    
    # On dimensionne les colonnes
    worksheet.set_column("A:A", 20)
    worksheet.set_column("B:B", 20)
    worksheet.set_column("C:C", 40)
    
    # On définit un style qui sera utilisé pour la ligne de titre.
    # Pour obtenir toutes les caractéristiques disponibles : print(dir(header_style))
    header_style = workbook.add_format({
        "bg_color": "gray",
        "font_color": "white",
        "bold": True
    })

    # On injecte la ligne de titre dans la première feuille    
    worksheet.write("A1", "Prénom", header_style)
    worksheet.write("B1", "Nom", header_style)
    worksheet.write("C1", "Email", header_style)
    
    # On produit une ligne par agent secret.
    pos = 2
    for spy in database:
        worksheet.write(f"A{pos}", spy[0])
        worksheet.write(f"B{pos}", spy[1])
        worksheet.write(f"C{pos}", spy[2])
        pos += 1
    
    # On ajoute une seconde feuille
    worksheet = workbook.add_worksheet("Agencies")
    # TODO Remplir la feuille avec des données

    # Le classeur est automatiquement fermé par l'instruction with.
Exportation de données dans un fichier .xlsx