Cours
Introduction à Excel en Python
Que vous soyez étudiant ou professionnel, il y a de fortes chances que vous ayez utilisé Excel pour travailler avec des données et des chiffres.
En fait, une étude menée en 2019 a révélé qu'environ 54 % des entreprises utilisent Excel pour effectuer des opérations arithmétiques, analyser des données, créer des visualisations et générer des rapports. Vous pouvez également effectuer des tâches de modélisation prédictive telles que la régression et le regroupement à l'aide d'Excel.
Cependant, malgré les atouts incontestés d'Excel, l'outil présente des inconvénients qui le rendent parfois inefficace dans l'exécution de tâches spécifiques impliquant d'énormes ensembles de données.
L'une des limites d'Excel est son incapacité à traiter de grandes quantités de données. Vous pouvez rencontrer de sérieux problèmes de performance lorsque vous essayez d'effectuer des opérations complexes sur un grand nombre d'entrées de données dans Excel, en particulier si vos formules et macros ne sont pas optimisées pour la performance.
Excel peut également prendre beaucoup de temps si vous devez effectuer des tâches répétitives. Par exemple, si vous devez reproduire une analyse sur plusieurs fichiers Excel chaque semaine, vous devrez les ouvrir manuellement et copier-coller les mêmes formules à plusieurs reprises.
Des enquêtes montrent que 93 % des utilisateurs d'Excel trouvent qu'il est fastidieux de consolider les feuilles de calcul et que les employés passent environ 12 heures par mois à combiner différents fichiers Excel.
Ces inconvénients peuvent être résolus en automatisant les flux de travail Excel avec Python. Des tâches telles que la consolidation des feuilles de calcul, le nettoyage des données et la modélisation prédictive peuvent être effectuées en quelques minutes à l'aide d'un simple script Python qui écrit dans un fichier Excel.
Les utilisateurs d'Excel peuvent également créer un planificateur en Python qui exécute le script automatiquement à différents intervalles de temps, ce qui réduit considérablement la quantité d'intervention humaine nécessaire pour effectuer la même tâche à plusieurs reprises.
Dans cet article, nous allons vous montrer comment :
- Utilisez une bibliothèque appelée Openpyxl pour lire et écrire des fichiers Excel à l'aide de Python.
- Créer des opérations arithmétiques et des formules Excel en Python
- Manipuler des feuilles de calcul Excel à l'aide de Python
- Créez des visualisations en Python et enregistrez-les dans un fichier Excel.
- Formater les couleurs et les styles des cellules Excel à l'aide de Python
Apprenez Python à partir de zéro
Introduction à Openpyxl
Openpyxl est une bibliothèque Python qui permet aux utilisateurs de lire et d'écrire dans des fichiers Excel.
Ce cadre peut vous aider à écrire des fonctions, à formater des feuilles de calcul, à créer des rapports et à élaborer des graphiques directement en Python, sans même avoir à ouvrir une application Excel.
En outre, Openpyxl permet aux utilisateurs d'itérer dans les feuilles de calcul et d'effectuer la même analyse sur plusieurs ensembles de données en même temps.
Cela améliore l'efficacité et permet d'automatiser les flux de travail Excel puisque les utilisateurs ne doivent effectuer l'analyse que sur une seule feuille de calcul et peuvent la reproduire autant de fois que nécessaire.
Comment installer Openpyxl
Pour installer Openpyxl, ouvrez simplement votre invite de commande ou Powershell et tapez la commande suivante :
$pip install Openpyxl
Vous devriez voir apparaître le message suivant indiquant que le paquet a été installé avec succès :
Lire des fichiers Excel en Python avec Openpyxl
Dans ce tutoriel, nous utiliserons l'ensemble de données Kaggle sur les ventes de jeux vidéo. Cet ensemble de données a été prétraité par notre équipe pour les besoins de ce tutoriel, et vous pouvez télécharger la version modifiée à partir de ce lien. Vous pouvez importer Excel dans Python en suivant la procédure ci-dessous :
-
Chargement du classeur
Après avoir téléchargé le jeu de données, importez la bibliothèque Openpyxl et chargez le classeur dans Python :
import openpyxl wb = openpyxl.load_workbook('videogamesales.xlsx')
Maintenant que le fichier Excel est chargé en tant qu'objet Python, vous devez indiquer à la bibliothèque la feuille de calcul à laquelle accéder. Il y a deux façons de procéder :
La première méthode consiste à appeler simplement la feuille de calcul active, qui est la première feuille du classeur, à l'aide de la ligne de code suivante :
ws = wb.active
Si vous connaissez le nom de la feuille de calcul, vous pouvez également y accéder par son nom. Nous utiliserons la feuille "vgsales" dans cette section du tutoriel :
ws = wb['vgsales']
Comptons maintenant le nombre de lignes et de colonnes de cette feuille de calcul :
print('Total number of rows: '+str(ws.max_row)+'. And total number of columns: '+str(ws.max_column))
Le code ci-dessus devrait produire le résultat suivant :
Total number of rows: 16328. And total number of columns: 10
Maintenant que nous connaissons les dimensions de la feuille, passons à la lecture des données du classeur.
-
Lecture des données d'une cellule
Voici une capture d'écran de la feuille active avec laquelle nous allons travailler dans cette section :
Pour récupérer les données d'une cellule spécifique avec Openpyxl, vous pouvez taper la valeur de la cellule comme suit :
print('The value in cell A1 is: '+ws['A1'].value)
Vous devriez obtenir le résultat suivant :
The value in cell A1 is: Rank
-
Lecture de données dans plusieurs cellules
Maintenant que nous savons comment lire les données d'une cellule spécifique, que se passerait-il si nous voulions imprimer toutes les valeurs des cellules d'une certaine ligne de la feuille de calcul ?
Pour ce faire, vous pouvez écrire une simple boucle "for" pour parcourir toutes les valeurs d'une ligne spécifique :
values = [ws.cell(row=1,column=i).value for i in range(1,ws.max_column+1)] print(values)
Le code ci-dessus imprime toutes les valeurs de la première ligne :
['Rank', 'Name', 'Platform', 'Year', 'Genre', 'Publisher', 'NA_Sales', 'EU_Sales', 'JP_Sales', 'Other_Sales']
Ensuite, essayons d'imprimer plusieurs lignes dans une colonne spécifique.
Nous allons créer une boucle for pour afficher les dix premières lignes de la colonne "Nom" sous la forme d'une liste. Nous devrions obtenir les noms mis en évidence dans l'encadré rouge ci-dessous :
data=[ws.cell(row=i,column=2).value for i in range(2,12)] print(data)
Le code ci-dessus produira le résultat suivant :
['Wii Sports', 'Super Mario Bros.', 'Mario Kart Wii', 'Wii Sports Resort', 'Pokemon Red/Pokemon Blue', 'Tetris', 'New Super Mario Bros.', 'Wii Play', 'New Super Mario Bros. Wii', 'Duck Hunt']
Enfin, imprimons les dix premières lignes d'une série de colonnes de la feuille de calcul :
# reading data from a range of cells (from column 1 to 6) my_list = list() for value in ws.iter_rows( min_row=1, max_row=11, min_col=1, max_col=6, values_only=True): my_list.append(value) for ele1,ele2,ele3,ele4,ele5,ele6 in my_list: (print ("{:<8}{:<35}{:<10} {:<10}{:<15}{:<15}".format(ele1,ele2,ele3,ele4,ele5,ele6)))
Les dix premières lignes de données dans les six premières colonnes devraient s'afficher après l'exécution du code ci-dessus :
Écrire dans des fichiers Excel avec Openpyxl
Maintenant que nous savons comment accéder et lire des données dans des fichiers Excel, apprenons à écrire dans ces fichiers à l'aide d'Openpyxl.
-
Écrire à une cellule
Il y a deux façons d'écrire dans un fichier avec Openpyxl.
Tout d'abord, vous pouvez accéder directement à la cellule en utilisant sa clé :
ws['K1'] = 'Sum of Sales'
Une autre solution consiste à spécifier la position de la ligne et de la colonne de la cellule dans laquelle vous souhaitez écrire :
ws.cell(row=1, column=11, value = 'Sum of Sales')
Chaque fois que vous écrivez dans un fichier Excel avec Openpyxl, vous devez sauvegarder vos modifications avec la ligne de code suivante, sinon elles ne seront pas reflétées dans la feuille de calcul :
wb.save('videogamesales.xlsx')
Si votre classeur est ouvert lorsque vous essayez de l'enregistrer, vous rencontrerez l'erreur de permission suivante :
Veillez à fermer le fichier Excel avant d'enregistrer vos modifications. Vous pouvez ensuite l'ouvrir à nouveau pour vous assurer que la modification est reflétée dans votre feuille de calcul :
Remarquez qu'une nouvelle colonne appelée "Somme des ventes" a été créée dans la cellule K1.
-
Création d'une nouvelle colonne
Additionnons maintenant la somme des ventes dans chaque région et inscrivons-la dans la colonne K.
Nous le ferons pour les données de vente de la première ligne :
row_position = 2 col_position = 7 total_sales = ((ws.cell(row=row_position, column=col_position).value)+ (ws.cell(row=row_position, column=col_position+1).value)+ (ws.cell(row=row_position, column=col_position+2).value)+ (ws.cell(row=row_position, column=col_position+3).value)) ws.cell(row=2,column=11).value=total_sales wb.save('videogamesales.xlsx')
Remarquez que les ventes totales ont été calculées dans la cellule K2 pour le premier jeu de la feuille de calcul :
De même, créons une boucle for pour additionner les valeurs des ventes dans chaque ligne :
row_position = 1 for i in range(1, ws.max_row): row_position += 1 NA_Sales = ws.cell(row=row_position, column=7).value EU_Sales = ws.cell(row=row_position, column=8).value JP_Sales = ws.cell(row=row_position, column=9).value Other_Sales = ws.cell(row=row_position, column=10).value total_sales = (NA_Sales + EU_Sales + JP_Sales + Other_Sales) ws.cell(row=row_position, column=11).value = total_sales wb.save("videogamesales.xlsx")
Votre fichier Excel doit maintenant comporter une nouvelle colonne reflétant les ventes totales de jeux vidéo dans toutes les régions :
-
Ajout de nouvelles lignes
Pour ajouter une nouvelle ligne au classeur, il suffit de créer un tuple avec les valeurs que vous souhaitez inclure et de l'écrire sur la feuille :
new_row = (1,'The Legend of Zelda',1986,'Action','Nintendo',3.74,0.93,1.69,0.14,6.51,6.5) ws.append(new_row) wb.save('videogamesales.xlsx')
Vous pouvez confirmer que ces données ont été ajoutées en imprimant la dernière ligne du classeur :
values = [ws.cell(row=ws.max_row,column=i).value for i in range(1,ws.max_column+1)] print(values)
La sortie suivante sera générée :
[1, 'The Legend of Zelda', 1986, 'Action', 'Nintendo', 3.74, 0.93, 1.69, 0.14, 6.51, 6.5]
-
Suppression de lignes
Pour supprimer la nouvelle ligne que nous venons de créer, vous pouvez exécuter la ligne de code suivante :
ws.delete_rows(ws.max_row, 1) # row number, number of rows to delete wb.save('videogamesales.xlsx')
Le premier argument de la fonction delete_rows() est le numéro de la ligne à supprimer. Le deuxième argument indique le nombre de lignes à supprimer.
Créer des formules Excel avec Openpyxl
Vous pouvez utiliser Openpyxl pour écrire des formules exactement comme vous le feriez dans Excel. Voici quelques exemples de fonctions de base que vous pouvez créer avec Openpyxl :
-
MOYENNE
Créons une nouvelle colonne intitulée "Ventes moyennes" pour calculer la moyenne des ventes totales de jeux vidéo sur tous les marchés :
ws['P1'] = 'Average Sales' ws['P2'] = '= AVERAGE(K2:K16220)' wb.save('videogamesales.xlsx')
La moyenne des ventes sur l'ensemble des marchés est d'environ 0,19. Elle sera imprimée dans la cellule P2 de votre feuille de calcul.
-
PAYS
La fonction "COUNTA" d'Excel compte les cellules qui sont remplies dans une plage spécifique. Utilisons-le pour trouver le nombre d'enregistrements entre E2 et E16220 :
ws['Q1'] = "Number of Populated Cells" ws['Q2'] = '=COUNTA(E2:E16220)' wb.save('videogamesales.xlsx')
Il y a 16 219 enregistrements dans cette gamme qui contiennent des informations.
-
COUNTIF
COUNTIF est une fonction Excel couramment utilisée qui compte le nombre de cellules répondant à une condition spécifique. Utilisons-le pour compter le nombre de jeux du genre "Sports" dans cet ensemble de données :
ws['R1'] = 'Number of Rows with Sports Genre' ws['R2'] = '=COUNTIF(E2:E16220, "Sports")' wb.save('videogamesales.xlsx')
L'ensemble de données comprend 2 296 jeux sportifs.
-
SUMIF
Trouvons maintenant la "somme des ventes" totales générées par les jeux sportifs à l'aide de la fonction SUMIF :
ws['S1'] = 'Total Sports Sales' ws['S2'] = '=SUMIF(E2:E16220, "Sports",K2:K16220)' wb.save('videogamesales.xlsx')
Le nombre total de ventes générées par les jeux sportifs est de 454.
-
PLAFOND
La fonction CEILING d'Excel arrondit un nombre au multiple spécifié le plus proche. Arrondissons le montant total des ventes générées par les jeux sportifs à l'aide de cette fonction :
ws['T1'] = 'Rounded Sum of Sports Sales' ws['T2'] = '=CEILING(S2,25)' wb.save('videogamesales.xlsx')
Nous avons arrondi le chiffre d'affaires total généré par les jeux sportifs au multiple de 25 le plus proche, ce qui donne un résultat de 475.
Les extraits de code ci-dessus devraient générer la sortie suivante dans votre feuille Excel (à partir des cellules P1 à T2) :
Vous pouvez consulter notre Aide-mémoire sur les bases d' Excel pour en savoir plus sur les formules, les opérateurs, les fonctions mathématiques et le calcul conditionnel.
Travailler avec des feuilles dans Openpyxl
Maintenant que nous savons comment accéder aux feuilles de calcul et y écrire, nous allons apprendre à les manipuler, les supprimer et les dupliquer à l'aide d'Openpyxl.
-
Changement de nom des feuilles
Tout d'abord, imprimons le nom de la feuille active avec laquelle nous travaillons actuellement en utilisant l'attribut title d'Openpyxl :
print(ws.title)
Le résultat suivant sera affiché :
vgsales
Renommons maintenant cette feuille de calcul à l'aide des lignes de code suivantes :
ws.title ='Video Game Sales Data' wb.save('videogamesales.xlsx')
Le nom de votre feuille active doit maintenant être modifié en "Données sur les ventes de jeux vidéo".
-
Création d'une nouvelle feuille de calcul
Exécutez la ligne de code suivante pour répertorier toutes les feuilles de calcul du classeur :
print(wb.sheetnames)
Vous verrez apparaître un tableau contenant les noms de toutes les feuilles de calcul du fichier :
['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year']
Créons maintenant une nouvelle feuille de calcul vide :
wb.create_sheet('Empty Sheet') # create an empty sheet print(wb.sheetnames) # print sheet names again wb.save('videogamesales.xlsx')
Remarquez qu'une nouvelle feuille appelée "Feuille vide" a été créée :
['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year', ‘Empty Sheet’]
-
Suppression d'une feuille de travail
Pour supprimer une feuille de calcul à l'aide d'Openpyxl, il suffit d'utiliser l'attribut remove et d'imprimer à nouveau tous les noms de feuilles pour confirmer que la feuille a bien été supprimée :
wb.remove(wb['Empty Sheet']) print(wb.sheetnames) wb.save('videogamesales.xlsx')
Remarquez que la feuille de calcul "Feuille vide" n'est plus disponible :
['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year']
-
Duplication d'une feuille de calcul
Enfin, exécutez cette ligne de code pour créer une copie d'une feuille de calcul existante :
wb.copy_worksheet(wb['Video Game Sales Data']) wb.save('vgsales_2.xlsx')
En imprimant à nouveau tous les noms de feuilles, nous obtenons le résultat suivant :
['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year', 'Video Game Sales Data Copy']
Ajouter des graphiques à un fichier Excel avec Openpyxl
Excel est souvent considéré comme l'outil idéal pour créer des visualisations et résumer des ensembles de données. Dans cette section, nous allons apprendre à construire des graphiques dans Excel directement à partir de Python en utilisant Openpyxl.
-
Diagramme à barres
Créons d'abord un simple diagramme à barres affichant les ventes totales de jeux vidéo par genre. Pour ce faire, nous utiliserons la feuille de calcul "Ventes totales par genre" :
Cette feuille de calcul contient un tableau croisé dynamique dans lequel la somme des ventes a été agrégée par genre, comme le montre la capture d'écran ci-dessus.
Accédons à cette feuille de calcul avant de commencer à créer le diagramme à barres :
ws = wb['Total Sales by Genre'] # access the required worksheet
Nous devons maintenant indiquer à Openpyxl les valeurs et les catégories que nous souhaitons représenter.
Valeurs :
Les valeurs comprennent les données "Somme des ventes" que nous voulons tracer. Nous devons indiquer à Openpyxl où trouver ces données dans le fichier Excel en incluant la plage dans laquelle vos valeurs commencent et se terminent.
Quatre paramètres dans Openpyxl vous permettent de spécifier l'emplacement de vos valeurs :
- Min_colonne : La colonne minimale contenant les données
- Max_column : La colonne maximale contenant les données
- Min_row : La ligne minimale contenant les données
- Max_row : La ligne maximale contenant les données
Voici une image illustrant la manière dont vous pouvez définir ces paramètres :
Remarquez que la ligne minimale est la première ligne et non la deuxième. En effet, Openpyxl commence à compter à partir de la ligne qui contient une valeur numérique.
# Values for plotting from openpyxl.chart import Reference values = Reference(ws, # worksheet object min_col=2, # minimum column where your values begin max_col=2, # maximum column where your values end min_row=1, # minimum row you’d like to plot from max_row=13) # maximum row you’d like to plot from
Catégories
Nous devons maintenant définir les mêmes paramètres pour les catégories de notre diagramme à barres :
Voici le code que vous pouvez utiliser pour définir les paramètres des catégories du graphique :
cats = Reference(ws, min_col=1, max_col=1, min_row=2, max_row=13)
Création du diagramme à barres
Nous pouvons maintenant créer l'objet diagramme à barres et y inclure nos valeurs et catégories à l'aide des lignes de code suivantes :
from openpyxl.chart import BarChart chart = BarChart() chart.add_data(values, titles_from_data=True) chart.set_categories(cats)
Définir les titres des graphiques
Enfin, vous pouvez définir les titres des graphiques et indiquer à Openpyxl l'endroit où vous souhaitez les créer dans la feuille Excel :
# set the title of the chart chart.title = "Total Sales" # set the title of the x-axis chart.x_axis.title = "Genre" # set the title of the y-axis chart.y_axis.title = "Total Sales by Genre" # the top-left corner of the chart # is anchored to cell F2 . ws.add_chart(chart,"D2") # save the file wb.save("videogamesales.xlsx")
Vous pouvez ensuite ouvrir le fichier Excel et naviguer jusqu'à la feuille de calcul "Ventes totales par genre". Vous devriez voir apparaître un graphique qui ressemble à celui-ci :
-
Diagramme à barres groupées
Créons maintenant un diagramme à barres groupées affichant les ventes totales par genre et par région. Vous trouverez les données de ce graphique dans la feuille de calcul "Répartition des ventes par genre" :
De la même manière que pour le diagramme à barres, nous devons définir la plage des valeurs et des catégories :
Nous pouvons maintenant accéder à la feuille de calcul et écrire cela en code :
### Creating a Grouped Bar Chart with Openpyxl ws = wb['Breakdown of Sales by Genre'] # access worksheet # Data for plotting values = Reference(ws, min_col=2, max_col=5, min_row=1, max_row=13) cats = Reference(ws, min_col=1, max_col=1, min_row=2, max_row=13)
Nous pouvons maintenant créer l'objet diagramme à barres, y inclure les valeurs et les catégories, et définir les paramètres du titre exactement comme nous l'avons fait précédemment :
# Create object of BarChart class chart = BarChart() chart.add_data(values, titles_from_data=True) chart.set_categories(cats) # set the title of the chart chart.title = "Sales Breakdown" # set the title of the x-axis chart.x_axis.title = "Genre" # set the title of the y-axis chart.y_axis.title = "Breakdown of Sales by Genre" # the top-left corner of the chart is anchored to cell H2. ws.add_chart(chart,"H2") # save the file wb.save("videogamesales.xlsx")
Lorsque vous ouvrez la feuille de calcul, un diagramme à barres groupées ressemblant à celui-ci devrait apparaître :
-
Graphique à lignes empilées
Enfin, nous créerons un graphique linéaire empilé en utilisant les données de l'onglet "Ventilation des ventes par année". Cette feuille de calcul contient des données sur les ventes de jeux vidéo ventilées par année et par région :
Définissons la plage des valeurs et des catégories de ce graphique :
Nous pouvons maintenant écrire ces valeurs minimales et maximales dans le code :
# Data for plotting values = Reference(ws, min_col=2, max_col=6, min_row=1, max_row=40) cats = Reference(ws, min_col=1, max_col=1, min_row=2, max_row=40)
Enfin, créons l'objet graphique linéaire et définissons le titre, l'axe des abscisses et l'axe des ordonnées du graphique :
# Create object of LineChart class from openpyxl.chart import LineChart chart = LineChart() chart.add_data(values, titles_from_data=True) chart.set_categories(cats) # set the title of the chart chart.title = "Total Sales" # set the title of the x-axis chart.x_axis.title = "Year" # set the title of the y-axis chart.y_axis.title = "Total Sales by Year" # the top-left corner of the chart is anchored to cell H2 ws.add_chart(chart,"H2") # save the file wb.save("videogamesales.xlsx")
Un graphique à lignes empilées ressemblant à celui-ci devrait apparaître sur votre feuille de calcul :
Formatage des cellules à l'aide d'Openpyxl
Openpyxl permet aux utilisateurs de styliser les cellules dans les classeurs Excel. Vous pouvez embellir votre feuille de calcul en modifiant la taille des polices, les couleurs d'arrière-plan et les bordures des cellules directement dans Python.
Voici quelques façons de personnaliser votre feuille de calcul Excel Python à l'aide d'Openpyxl :
-
Modifier la taille et le style des polices
Augmentons la taille de la police dans la cellule A1 et mettons le texte en gras en utilisant les lignes de code suivantes :
from openpyxl.styles import Font ws = wb['Video Game Sales Data'] ws['A1'].font = Font(bold=True, size=12) wb.save('videogamesales.xlsx')
Remarquez que le texte de la cellule A1 est maintenant légèrement plus grand et en gras :
Et si nous voulions modifier la taille et le style de la police pour tous les en-têtes de colonne de la première ligne ?
Pour ce faire, nous pouvons utiliser le même code et créer simplement une boucle for pour parcourir toutes les colonnes de la première ligne :
for cell in ws["1:1"]: cell.font = Font(bold=True, size=12) wb.save('videogamesales.xlsx')
Lorsque nous itérons sur ["1:1"], nous indiquons à Openpyxl les lignes de début et de fin à parcourir. Si nous voulions parcourir les dix premières lignes, par exemple, nous devrions spécifier ["1:10"] à la place.
Vous pouvez ouvrir la feuille Excel pour vérifier si les modifications ont été prises en compte :
-
Changement de la couleur de la police
Vous pouvez modifier la couleur des polices dans Openpyxl en utilisant des codes hexagonaux :
from openpyxl.styles import colors ws['A1'].font = Font(color = 'FF0000',bold=True, size=12) ## red ws['A2'].font = Font(color = '0000FF') ## blue wb.save('videogamesales.xlsx')
Après avoir enregistré le classeur et l'avoir ouvert à nouveau, les couleurs des polices dans les cellules A1 et A2 devraient avoir changé :
)
-
Modification de la couleur d'arrière-plan des cellules
Pour modifier la couleur d'arrière-plan d'une cellule, vous pouvez utiliser le module PatternFill d'Openpyxl :
## changing background color of a cell from openpyxl.styles import PatternFill ws["A1"].fill = PatternFill('solid', start_color="38e3ff") # light blue background color wb.save('videogamesales.xlsx')
La modification suivante doit être reflétée dans votre feuille de calcul :
-
Ajout de bordures de cellules
Pour ajouter une bordure de cellule à l'aide d'Openpyxl, exécutez les lignes de code suivantes :
## cell borders from openpyxl.styles import Border, Side my_border = Side(border_style="thin", color="000000") ws["A1"].border = Border( top=my_border, left=my_border, right=my_border, bottom=my_border ) wb.save("videogamesales.xlsx")
Vous devriez voir une bordure ressemblant à ceci apparaître dans la cellule A1 :
-
Formatage conditionnel
La mise en forme conditionnelle consiste à mettre en évidence des valeurs spécifiques dans un fichier Excel en fonction d'un ensemble de conditions. Il permet aux utilisateurs de visualiser plus facilement les données et de mieux comprendre les valeurs de leurs feuilles de calcul.
Utilisons Openpyxl pour surligner en vert toutes les valeurs de ventes de jeux vidéo qui sont supérieures ou égales à 8 :
from openpyxl.formatting.rule import CellIsRule fill = PatternFill( start_color='90EE90', end_color='90EE90',fill_type='solid') # specify background color ws.conditional_formatting.add( 'G2:K16594', CellIsRule(operator='greaterThan', formula=[8], fill=fill)) # include formatting rule wb.save('videogamesales.xlsx')
Dans le premier bloc de code, nous spécifions la couleur d'arrière-plan des cellules que nous souhaitons formater. Dans ce cas, la couleur est le vert clair.
Ensuite, nous créons une règle de mise en forme conditionnelle indiquant que toute valeur supérieure à 8 doit être mise en évidence dans la couleur de remplissage que nous avons spécifiée. Nous indiquons également la plage de cellules dans laquelle nous souhaitons appliquer cette condition.
Après avoir exécuté le code ci-dessus, toutes les valeurs de vente supérieures à 8 devraient être mises en évidence comme suit :
Travailler avec Excel en Python : Prochaines étapes
Nous avons couvert beaucoup de terrain dans ce tutoriel, depuis les bases de l'utilisation de la bibliothèque Openpyxl jusqu'à la réalisation d'opérations plus avancées telles que la création de graphiques et le formatage de feuilles de calcul en Python.
Python et Excel sont de puissants outils de manipulation de données utilisés pour élaborer des modèles prédictifs, produire des rapports analytiques et effectuer des calculs mathématiques.
Le plus grand avantage d'Excel est qu'il est utilisé par presque tout le monde. Qu'il s'agisse de parties prenantes non techniques ou de personnes débutantes, les employés de tous niveaux comprennent les rapports présentés dans une feuille de calcul Excel.
Python, quant à lui, est utilisé pour analyser et construire des modèles sur de grandes quantités de données. Il peut aider les équipes à automatiser les tâches laborieuses et à améliorer l'efficacité de l'organisation.
L'utilisation conjointe d'Excel et de Python permet de gagner des heures sur les flux de travail d'une entreprise tout en conservant une interface familière à tous les membres de l'organisation.
Maintenant que vous savez comment Openpyxl peut être utilisé pour travailler avec des feuilles Excel, voici quelques façons d'approfondir ces nouvelles connaissances et de les utiliser pour ajouter de la valeur à vos flux de travail existants :
-
Pratique sur des ensembles de données plus importants
L'ensemble de données que nous avons utilisé ci-dessus ne comporte qu'environ 16 000 lignes, alors qu'Openpyxl peut traiter des quantités beaucoup plus importantes en utilisant les modes optimisés de la bibliothèque. Si votre objectif est d'effectuer rapidement des opérations sur des classeurs Excel volumineux, vous pouvez vous entraîner à utiliser Openpyxl dans ses modes de lecture et d'écriture optimisés. -
Suivre un cours en ligne
Bien que nous ayons couvert les principes fondamentaux du travail avec Excel en Python, de nombreux concepts sortent du cadre de ce cours - notamment le travail avec plusieurs feuilles Excel, la création de tableaux croisés dynamiques et le résumé de grandes quantités de données.
Nous vous suggérons de suivre le cours Python pour les utilisateurs de tableurs de Datacamp pour combler certaines de ces lacunes dans vos connaissances. -
Apprenez à automatiser des flux de travail Excel en Python
Comme indiqué précédemment dans cette section, le plus grand avantage de l'utilisation de bibliothèques comme Openpyxl est la possibilité de travailler avec plusieurs classeurs à la fois et de planifier des flux de travail afin qu'ils n'aient pas à être répétés plusieurs fois.
Vous pouvez essayer de créer une fonction simple qui itère à travers plusieurs classeurs à la fois et effectue certaines des opérations couvertes dans ce didacticiel. -
Découvrez les différentes bibliothèques
Alors qu'Openpyxl est une option pour manipuler les fichiers Excel avec Python, il existe des alternatives comme la bibliothèque Pandas qui peut vous aider à traiter le contenu Excel plus rapidement.
Si le formatage des cellules ou le travail direct avec les formules Excel n'est pas une nécessité pour vous, Pandas pourrait en fait être plus facile à apprendre parce qu'il a une meilleure documentation et un meilleur support communautaire.
Vous pouvez suivre notre cours Manipulation de données avec Pandas pour commencer à apprendre à connaître la bibliothèque dès aujourd'hui.
Obtenez une certification dans le rôle de Data Scientist de vos rêves
Nos programmes de certification vous aident à vous démarquer et à prouver aux employeurs potentiels que vos compétences sont adaptées à l'emploi.
