Python

Manipulation de feuilles de calcul Excel à l'aide de Python

Manipulation de feuilles de calcul Excel à l'aide de Python

Microsoft Excel est un tableur utilisé pour stocker et gérer des données tabulaires. De plus, avec Excel, les calculs peuvent être effectués en appliquant des formules aux données, et des visualisations de données peuvent être produites.De nombreuses tâches effectuées dans des feuilles de calcul, telles que les opérations mathématiques, peuvent être automatisées via la programmation, et de nombreux langages de programmation ont des modules pour manipuler les feuilles de calcul Excel. Dans ce tutoriel, nous allons vous montrer comment utiliser le module openpyxl de Python pour lire et modifier des feuilles de calcul Excel.

Installer openpyxl

Avant de pouvoir installer openpyxl, vous devez installer pip. Pip est utilisé pour installer les packages Python. Exécutez la commande suivante dans l'invite de commande pour voir si pip est installé.

C:\Users\windows> aide pip

Si le contenu d'aide de pip est renvoyé, alors pip est installé ; sinon, allez sur le lien suivant et téléchargez le get-pip.fichier py :

https://bootstrap.papy.io/get-pip.py

Maintenant, exécutez la commande suivante pour installer pip :

C:\Users\windows> python get-pip.py

Après avoir installé pip, la commande suivante peut être utilisée pour installer openpyxl.

C:\Users\windows> pip install openpyxl

Création d'un document Excel

Dans cette section, nous utiliserons le module openpyxl pour créer un document Excel. Tout d'abord, ouvrez l'invite de commande en tapant « cmd » dans la barre de recherche ; puis, entrez

C:\Users\windows> python

Pour créer un classeur Excel, nous importerons le module openpyxl puis utiliserons la méthode 'Workbook()' pour créer un classeur.

>>> # importation du module openpyxl
>>> importer openpyxl
>>> # Initialisation d'un classeur
>>> work_book = openpyxl.Cahier d'exercices()
>>> # enregistrement du classeur en tant qu'exemple.xlsx'
>>> work_book.enregistrer('exemple.xlsx')

Les commandes ci-dessus créent un document Excel appelé exemple.xlsx. Ensuite, nous allons manipuler ce document Excel.

Manipulation de feuilles dans un document Excel

Nous avons créé un document Excel appelé exemple.xlsx. Maintenant, nous allons manipuler les feuilles de ce document en utilisant Python. Le module openpyxl a une méthode 'create_sheet()' qui peut être utilisée pour créer une nouvelle feuille. Cette méthode prend deux arguments : index et title. Index définit le placement de la feuille en utilisant n'importe quel entier non négatif (y compris 0), et le titre est le titre de la feuille. Une liste de toutes les feuilles de l'objet work_book peut être affichée en appelant la liste des noms de feuilles.

>>> # importation d'openpyxl
>>> importer openpyxl
>>> # chargement du document Excel existant dans l'objet work_book
>>> work_book = openpyxl.load_workbook('exemple.xlsx')
>>> # Création d'une nouvelle feuille au 0ème index
>>> work_book.create_sheet(index=0, title='Première feuille')

>>> # Obtenir toutes les feuilles
>>> work_book.noms de feuilles
['Première feuille', 'Feuille']
>>> # Enregistrement d'un document Excel
>>> work_book.enregistrer('exemple.xlsx')

Dans le code ci-dessus, nous avons créé une feuille nommée First Sheet et l'avons placée au 0ème index. La feuille précédemment située au 0e index a été déplacée au 1er index, comme indiqué dans la sortie. Maintenant, nous allons changer le nom de la feuille d'origine de Sheet à Second Sheet.

L'attribut title contient le nom de la feuille. Pour renommer une feuille, nous devons d'abord naviguer vers cette feuille comme suit.

>>> # Obtenir une feuille active à partir d'un document Excel
>>> feuille = work_book.actif
>>> # Nom de la feuille d'impression
>>> imprimer (feuille.Titre)
Première feuille >>> # Navigation vers la deuxième feuille (à l'index 1)
>>> work_book.actif = 1
>>> # Feuille d'activation
>>> feuille = work_book.actif
>>> # impression du nom de la feuille
>>> imprimer (feuille.Titre)
Feuille >>> # Modification du titre de la feuille
>>> fiche.title = 'Deuxième feuille'
>>> # Impression du titre de la feuille
>>> imprimer (feuille.Titre)
Deuxième feuille

De même, nous pouvons supprimer une feuille du document Excel. Le module openpyxl propose la méthode remove() pour supprimer une feuille. Cette méthode prend le nom de la feuille à supprimer comme argument puis supprime cette feuille. Nous pouvons supprimer la deuxième feuille comme suit :

>>> # suppression d'une feuille par nom
>>> work_book.remove(work_book['Deuxième feuille'])
>>> # obtenir toutes les feuilles
>>> work_book.noms de feuilles
['Première feuille']
>>> # enregistrement du document Excel
>>> work_book.enregistrer('exemple.xlsx')

Ajout de données aux cellules

Jusqu'à présent, nous vous avons montré comment créer ou supprimer des feuilles dans un document Excel. Maintenant, nous allons ajouter des données aux cellules de différentes feuilles. Dans cet exemple, nous avons une seule feuille nommée Première feuille dans notre document, et nous voulons créer deux autres feuilles.

>>> # importation d'openpyxl
>>> importer openpyxl
>>> # chargement du classeur
>>> work_book = openpyxl.load_workbook('exemple.xlsx')
>>> # Création d'une nouvelle feuille au 1er index
>>> work_book.create_sheet(index=1, title='Deuxième feuille')

>>> # création d'une nouvelle feuille au 2ème index
>>> work_book.create_sheet(index=2, title='Troisième feuille')

>>> # obtenir toutes les feuilles
>>> work_book.noms de feuilles
['Première feuille', 'Deuxième feuille', 'Troisième feuille']

Maintenant, nous avons trois feuilles, et nous allons ajouter des données aux cellules de ces feuilles.

>>> # Obtenir la première feuille
>>> feuille_1 = work_book['Première feuille']
>>> # Ajout de données à la cellule 'A1' de la première feuille
>>> feuille_1['A1'] = 'Nom'
>>> # Obtention de la deuxième feuille
>>> feuille_2 = work_book['Deuxième feuille']
>>> # Ajout de données à la cellule 'A1' de la deuxième feuille
>>> feuille_2['A1'] = 'ID'
>>> # Obtenir la troisième feuille
>>> feuille_3 = work_book['Troisième feuille']
>>> # Ajout de données à la cellule 'A1' de la troisième feuille
>>> feuille_3['A1'] = 'Notes'
>>> # Enregistrement du classeur Excel
>>> work_book.enregistrer('exemple.xlsx')

Lecture de feuilles Excel

Le module openpyxl utilise l'attribut value d'une cellule pour stocker les données de cette cellule. Nous pouvons lire les données dans une cellule en appelant l'attribut value de la cellule. Maintenant, nous avons trois feuilles, et chaque feuille contient des données. Nous pouvons lire les données en utilisant les fonctions suivantes dans openpyxl :

>>> # importation d'openpyxl
>>> importer openpyxl
>>> # chargement du classeur
>>> work_book = openpyxl.load_workbook('exemple.xlsx')
>>> # Obtenir la première feuille
>>> feuille_1 = work_book['Première feuille']
>>> # Obtention de la deuxième feuille
>>> feuille_2 = work_book['Deuxième feuille']
>>> # Obtenir la troisième feuille
>>> feuille_3 = work_book['Troisième feuille']
>>> # impression des données de la cellule 'A1' de la première feuille
>>> imprimer(feuille_1['A1'].valeur)
Nom
>>> # impression des données de la cellule 'A1' de la deuxième feuille
>>> imprimer(feuille_2['A1'].valeur)
identifiant
>>> # impression des données de la cellule 'A1' de la troisième feuille
>>> imprimer(feuille_3['A1'].valeur)
Notes

Changer les polices et les couleurs

Ensuite, nous allons vous montrer comment changer la police d'une cellule en utilisant la fonction Font(). Tout d'abord, importez le fichier openpyxl.objet de style. La méthode Font() prend une liste d'arguments, notamment :

  • nom (chaîne): le nom de la police
  • taille (int ou float): la taille de la police
  • souligner (chaîne): le type de soulignement
  • couleur (chaîne): la couleur hexadécimale du texte
  • italique (bool): si la police est en italique
  • gras (bool): si la police est en gras

Pour appliquer des styles, il faut d'abord créer un objet en passant tous les paramètres à la méthode Font(). Ensuite, on sélectionne la feuille, et à l'intérieur de la feuille, on sélectionne la cellule à laquelle on veut appliquer le style. Ensuite, nous appliquons le style à la cellule sélectionnée.

>>> # importation d'openpyxl
>>> importer openpyxl
>>> # importation de la méthode Font depuis openpyxl.modes
>>> depuis openpyxl.styles importer la police
>>> # chargement du classeur
>>> work_book = openpyxl.load_workbook('exemple.xlsx')
>>> # Création d'objet de style
>>> style = Font(name='Consolas', size=13, bold=True,
… italique=Faux)
>>> # Sélection d'une feuille dans le classeur
>>> feuille_1 = work_book['Première feuille']
>>> # Sélection de la cellule dans laquelle nous voulons ajouter des styles
>>> a1 = feuille_1['A1']
>>> # Application de styles à la cellule
>>> a1.police = style
>>> # Enregistrement du classeur
>>> work_book.enregistrer('exemple.xlsx')

Application de bordures aux cellules

Nous pouvons appliquer des bordures aux cellules d'une feuille Excel en utilisant les méthodes Border() et Side() de l'openpyxl.modes.module bordures. Nous pouvons passer différentes fonctions comme paramètres à la méthode Border(). Voici quelques-unes des fonctions qui sont transmises en tant que paramètres à la méthode Border() pour définir les dimensions de la bordure.

  • la gauche: applique une bordure sur le côté gauche d'une cellule
  • droite: appliquer une bordure sur le côté droit d'une cellule
  • Haut: appliquer une bordure en haut d'une cellule
  • bas: appliquer une bordure au bas d'une cellule

Ces fonctions prennent les attributs de style comme paramètres. L'attribut style définit le style de la bordure (e.g., plein, pointillé). Les paramètres de style peuvent avoir l'une des valeurs suivantes.

  • double: une bordure à double ligne
  • en pointillé: une bordure en pointillé
  • mince: une fine bordure
  • moyen: une bordure moyenne
  • moyentiretpoint: une bordure en pointillés et en pointillés de poids moyen
  • épais: une bordure épaisse
  • tiretPoint: une bordure en pointillés et en pointillés
  • Cheveu: une bordure très fine
  • pointé: une bordure en pointillé

Maintenant, nous allons appliquer différents types de bordures à différentes cellules de nos feuilles de calcul. Tout d'abord, nous sélectionnons des cellules, puis nous définissons des styles de bordure et appliquons ces styles à différentes cellules.

>>> # importation d'openpyxl
>>> importer openpyxl
>>> # import des classes Border et Side
>>> depuis openpyxl.modes.frontières import Bordure, Côté
>>> # chargement du classeur
>>> work_book = openpyxl.load_workbook('exemple.xlsx')
>>> # Feuille de sélection
>>> feuille_1 = work_book['Première feuille']
>>> # Sélection de différentes cellules de la feuille
>>> cellule_1 = feuille_1['A1']
>>> cellule_2 = feuille_1['B2']
>>> cellule_3 = feuille_1['C3']
>>> # Définir différents styles de bordure
>>> style_1 = Bordure(bas=Côté(style='dotted'))
>>> style_2 = Bordure(droite=Côté(style='fin'))
>>> style_3 = Bordure(haut=Côté(style='dashDot'))
>>> # application de styles de bordure aux cellules
>>> cellule_1.bordure = style_1
>>> cellule_2.bordure = style_2
>>> cellule_3.bordure = style_3
>>> # Enregistrement du classeur
>>> work_book.enregistrer('exemple.xlsx')

Ajustement des dimensions des lignes et des colonnes

La hauteur des lignes et la largeur des colonnes d'un document Excel peuvent également être ajustées à l'aide de Python. Le module openpyxl a deux méthodes intégrées qui peuvent être utilisées pour effectuer ces actions. Tout d'abord, nous sélectionnons la feuille dont nous voulons changer la largeur de colonne ou la hauteur de ligne. Ensuite, nous appliquons une méthode à la ligne ou à la colonne spécifique.

>>> # importation d'openpyxl
>>> importer openpyxl
>>> # chargement du classeur
>>> work_book = openpyxl.load_workbook('exemple.xlsx')
>>> # feuille de sélection
>>> feuille_1 = work_book['Première feuille']
>>> # changer la hauteur de la première ligne
>>> fiche_1.dimensions_ligne[1].hauteur = 50
>>> # Enregistrement du classeur
>>> work_book.enregistrer('exemple.xlsx')

De même, nous pouvons changer la largeur d'une colonne en utilisant le code suivant

>>> # sélection de la feuille du classeur Excel
>>> feuille_2 = work_book['Deuxième feuille']
>>> # changer la largeur d'une colonne
>>> fiche_2.dimension_colonne['A'].largeur = 50
>>> # Enregistrement du classeur
>>> work_book.enregistrer('exemple.xlsx')

Le code ci-dessus changera la hauteur de la première ligne à 50 pts et la largeur de la colonne A à 50 pts.

Fusionner et annuler la fusion de cellules

Lorsque vous travaillez avec des feuilles de calcul Excel, nous avons souvent besoin de fusionner et d'annuler la fusion de cellules. Pour fusionner des cellules en Python, une fonction simple basée sur openpyxl peut être utilisée. Le module openpyxl propose la méthode merge_cells(), qui peut être utilisée pour fusionner des cellules dans Excel. La nouvelle cellule prendra le nom de la cellule en haut à gauche. Par exemple, si nous voulons fusionner les cellules de la cellule A1 à la cellule B2, alors la cellule nouvellement formée sera appelée A1. Pour fusionner des cellules à l'aide d'openpyxl, nous sélectionnons d'abord la feuille, puis nous appliquons la méthode merge_cells() à la feuille.

>>> # importation du module openpyxl
>>> importer openpyxl
>>> # chargement du classeur
>>> work_book = openpyxl.load_workbook('exemple.xlsx')
>>> # sélection de la première feuille du classeur Excel
>>> feuille_1 = work_book['Première feuille']
>>> # fusion des cellules de A1 à B2 dans la feuille 1
>>> fiche_1.merge_cells('A1:B2')
>>> # enregistrement du classeur
>>> work_book.enregistrer('exemple.xlsx')

De même, la méthode unmerge_cells() peut être utilisée pour annuler la fusion de cellules dans une feuille de calcul Excel. Le code suivant peut être utilisé pour annuler la fusion des cellules :

>>> # sélection de la feuille du classeur
>>> feuille_1 = work_book['Première feuille']
>>> # défusionner les cellules de A1 à B2
>>> fiche_1.unmerge_cells('A1:B2')
>>> # enregistrement du classeur
>>> work_book.enregistrer('exemple.xlsx')

Conclusion

Les feuilles de calcul Excel sont couramment utilisées pour la manipulation de données. Cependant, de telles tâches peuvent être monotones. Par conséquent, dans de tels cas, la programmation peut être utilisée pour automatiser la manipulation des feuilles de calcul.

Dans cet article, nous avons discuté de certaines des fonctions utiles du module openpyxl de Python. Nous vous avons montré comment créer, lire, supprimer et modifier des feuilles de calcul Excel, comment changer le style, appliquer la police, les bordures et les dimensions des cellules, et comment fusionner et annuler la fusion des cellules. En appliquant ces fonctions, vous pouvez automatiser de nombreuses tâches de manipulation de feuilles de calcul à l'aide de Python.

Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...
Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...