Bonjour, une fois n’est pas coutume, retrouvez ici un premier article technique sur Python dans Excel. L’inclusion de python dans Excel est maintenant bien connu cependant sa mise en œuvre m’a posé quelques problème de démarrage que je n’ai pas retrouvé complètement sur les tutos existants.
Voici donc la problématique: Je souhaite afficher un graphique via python dans Excel basé sur des données d’une feuille. Contrairement à ce que j’ai vu dans les tutos, notamment Microsoft, les données ne sont cette fois ci pas stockées dans une table au sens Excel mais dans des cellules et cela change la façon dont vous allez passer ces informations à python.
Prenons un exemple simple avec le tableau de données suivant représentant le chiffre d’affaire d’une entreprise par mois. On a donc:
On souhaite afficher le bargraph correspondant via python. Pour cela nous allons utiliser dans une cellule la commande python: « =py ». . Python est maintenant activé dans Excel comme dans la copie d’écran ci-dessous:
Tapez le code suivant qui permet de récupérer les valeurs non pas dans une table Excel mais dans des cellules d’un tableau déclaré en header de la fonction.
# Récupération des données dans le tableau / Indiquez l’ensemble du tableau avec les en-têtes.data =xl(« Data!C3:N4 »,headers = True)# Initialisation des mois et du CA / J’ai ici ajouté les mois directement dans le tableau python months au lieu de les reprendre du tableau Excel pour simplifier le formatage.months = [« Jan », « Feb », « Mar », « Apr », « May », « Jun », « Jul », « Aug », « Sep », « Oct », « Nov », « Dec »]valuesRea = data.loc[0] # Récupération de la première colonne de données, dans notre exemple la ligne 4 qui correspond à 0 en indice.# Create DataFrame – Création du tableau de données dans pythondf2 = pd.DataFrame({‘Month’: months, ‘Realise’: valuesRea})


import matplotlib.pyplot as plt #Ajout des bibliothèques pour les graphs.
import pandas as pd # Ajout de la bibliothèque pour Excel.
import numpy as np# Plot – Création de la figure type bargraph
Fig, ax = plt.subplots(layout= »constrained »)
plt.bar(df2[‘Month’], df2[‘Realise’], label=’Realisé’, color=’skyblue’)# Ajouter des étiquettes de valeur
Fig.legend()
x = np.arange(len(df2[‘Month’]))
ax.set_xlabel(‘X label’)
ax.set_ylabel(‘Y label’)#Show graph
plt.xlabel(‘Month’)
plt.ylabel(‘Value’)
plt.title(‘CA Total by Month’)
plt.xticks(rotation=90)
plt.tight_layout()
plt.show()



