Exportation de résultats vers Excel

Informations

  • Fichier : Knu/Scripts/Librairies/outilsExcel.py

  • Auteur: Victor Baconnet

  • Date de dernière modification: 27 août 2021

Description

Outils d’écriture et d’édition de données et graphiques sur excel

Utilisation

Ces fonctions sont à importer directement dans vos programmes.

L’exécution de ce fichier ne produira aucun résultat.

Exemple d’utilisation

Ecriture de données et affichage:

import outilsExcel as oxc
from openpyxl import Workbook
from openpyxl.chart import ScatterChart
from numpy import sin, pi, linspace
from pandas import DataFrame

# Génération de données
t = linspace(0,10,1001)
y1 = sin(2*pi*t)
y2 = sin(2*pi*t/4)
y3 = y1*y2

# Tout mettre dans un dataframe
df = DataFrame(data = [t,y1,y2,y3]).transpose() 
df.columns = ["t","Periode 1s","Periode 4s","Produit"]

# Initialisation du fichier excel et des feuilles de donées
wkbk = Workbook()  # Objet worbook = fichier excel
donnees = wkbk.active
donnees.title = "Données"
graphes = wkbk.create_sheet("Graphiques")

# Creation des objets graphiques
chart1 = ScatterChart(auto_axis = False)
chart2 = ScatterChart(auto_axis = False)

# Ecriture des données
oxc.write(df, donnees, with_index = False)

# Affichage des graphiques
oxc.plot(chart1, [(1,2),(1,3)], donnees, graphes, "A1",
         xlabel = "Temps (s)", y_min_row = 2, x_min_row = 2,
         get_title = True, xlim=(0,10))

oxc.plot(chart2, [(1,4)], donnees, graphes, "M1",
         xlabel = "Temps (s)", y_min_row = 2, x_min_row = 2,
         get_title = True, xlim=(0,10))

#Sauvegarde
wkbk.save("exemple.xlsx")

Fonctions

outilsExcel.make_plot(chart, data_sheet, x_col, y_col, x_min_row=2, y_min_row=2, get_title=True)

Tracer un graphique sur une feuille à partir de données d’une autre feuille. Trace colonne par colonne.

Parameters
  • chart (openpyxl.chart.line_chart.LineChart) – Objet LineChart sur lequel tracer

  • plot_sheet (openpyxl.worksheet.worksheet.Worksheet) – Feuille sur laquelle tracer

  • qf_sheet (openpyxl.worksheet.worksheet.Worksheet) – Feuille à partir de laquelle récupérer les données

  • x_col (int) – Indice de la colonne des x (commence à 1)

  • y_col (int) – Indice de la colonne des y (commence à 1)

  • get_title (bool) – Indique si il faut récupérer le titre de la colonne y ou non

outilsExcel.plot(chart, cols, data_sheet, plot_sheet, where, title='', xlabel='', ylabel='', y_min_row=1, x_min_row=2, height=15, width=20, legend_position='t', display_legend=True, xlim=None, ylim=None, get_title=True, additional_info='')

Tracer plusieurs jeux de données sur un même graphique

Parameters
  • chart (ScatterChart) – Object chart sur lequel faire le graphique. Se crée avec la commande : chart = ScatterChart(auto_axis = False)

  • cols (list(tuple(int))) – Colonnes à tracer. Syntaxe: [(x1,y1), (x2,y2), ...], où les xi et yi sont des entiers correspondant aux colonnes à tracer. La colonne A est la numéro 1, et ainsi de suite.

  • data_sheet (openpyxl.worksheet.worksheet.Worksheet) – Feuille dans laquelle récupérer les données

  • plot_sheet (openpyxl.worksheet.worksheet.Worksheet) – Feuille sur laquelle afficher le graphique

  • where (str) – Cellule où faire le graphique (coin supérieur gauche). Exemple “A1”

  • title (str) – Titre du graphique

  • xlabel (str) – Nom de l’axe x

  • ylabel (str) – Nom de l’axe y

  • y_min_row (int) – Ligne minimale à partir de laquelle lire les données y, AVEC le titre! Exemple si titre en A1 et données A2:100, y_min_row=1

  • x_min_row (int) – Ligne minimale à partir de laquelle lire les données x, SANS le titre! Exemple si titre en A1 et données A2:100, x_min_row=2

  • height (int) – hauteur du graphique

  • width (int) – largeur du graphique

  • legend_position

    Position de la légende.

    • Top : t

    • Bottom : b

    • Left : l

    • Right : r

outilsExcel.write(data, sheet, with_index=False)

Ajoute (append) des données d’un DataFrame dans une feuille excel

Parameters
  • data (pandas.core.frame.DataFrame) – Tableau de données de type dataframe

  • sheet (openpyxl.worksheet.worksheet.Worksheet) – Feuille dans laquelle écrire