Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

POWERBI/QUERY :: Récupérer le répertoire qui héberge le classeur POWERBI - Répertoire actif

oguruma

XLDnaute Occasionnel
Finalement un petit contournement pour récupérer le répertoire actif qui héberge le classeur PowerBI.
Ceci en passant par un fichier paramètre Excel qu'il faudra activer et mettre à jour à l'installation du classeur PowerBI.
Cette manipulation est plus aisée que dans PowerBI pour les non habitués à cette application.

Environnement


Le fichier Excel DOSSIER_COURANT.xlsx


On peut également définir le dossier courant via un nom de champ pour le récupérer sous PowerQuery(PowerBI)


- à la prise en charge de l'application et à l'issue de l'installation, ouvrir le fichier Excel et le sauvegarder afin que cette formule se mette à jour
=GAUCHE(CELLULE("nomfichier";$A$20);TROUVE("[";CELLULE("nomfichier";$A$3))-2)
Récupération dans l'environnement PowerQuery de PowerBI




On positionne la constante DOSSIER_COURANT
PowerQuery:
let
    Source = Excel.Workbook(File.Contents("D:\DATA\06__PRISE_EN_MAIN_POWERBI_LAB\$__pbiDOSSIER_COURANT\DOSSIER_COURANT.xlsx"), null, true),
    DOSSIER_COURANT_DefinedName = Source{[Item="DOSSIER_COURANT",Kind="DefinedName"]}[Data],
    Column1 = DOSSIER_COURANT_DefinedName{0}[Column1]
in
    Column1

Via une table de paramètres TB_PARAMS


PowerQuery:
let
    Source =
    Python.Execute(
        "import pandas as pd#(lf)"                                                                                     &
        "import numpy as np#(lf)"                                                                                      &
        "df = pd.read_excel(r'" & DOSSIER_COURANT & "\DOSSIER_COURANT.xlsx')#(lf)" &
        "print (df)"
        ),
    ExpandValues = Table.ExpandTableColumn(Source, "Value", {"PARAMETRE", "VALEUR"}, {"PARAMETRE", "VALEUR"}),
    DelColumns = Table.RemoveColumns(ExpandValues,{"Name"})
in
    DelColumns

On remarque que l'on passe ici par un connecteur Python (juste pour montrer une méthode) ; sinon nous aurions l'importer de manière classique en spécifiant un ressource externe Excel.

L'accès au dossier est réalisé via cette ligne : "df = pd.read_excel(r'" & DOSSIER_COURANT & "\DOSSIER_COURANT.xlsx')#(lf)" &

Source réel chemin non-substitué
Python:
import pandas as pd
import numpy as np
df = pd.read_excel(r'D:\DATA\06__PRISE_EN_MAIN_POWERBI_LAB\$__pbiDOSSIER_COURANT\DOSSIER_COURANT.xlsx')
print (df)

Utilisation - exemple chargement d'une table des départements


1ère méthode
PowerQuery:
let   
    Source = Csv.Document(File.Contents(DOSSIER_COURANT & "\" & "DEPARTEMENTS.csv"),[Delimiter=",", Columns=4, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    Promote = Table.PromoteHeaders(Source, [PromoteAllScalars=true])
in
    Promote

2nde méthode
Code:
let
    Folder=fnGetParameter(TB_PARAMS,"DOSSIER_COURANT"),
    Source = Csv.Document(File.Contents(Folder & "\" & "DEPARTEMENTS.csv"),[Delimiter=",", Columns=4, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    Promote = Table.PromoteHeaders(Source, [PromoteAllScalars=true])
in
    Promote

Visualisation sous forme de Carte PowerBI
 

Pièces jointes

  • 1710439376381.png
    3.8 KB · Affichages: 1
  • $__pbiDOSSIER_COURANT.zip
    54.4 KB · Affichages: 1

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…