oguruma
XLDnaute Impliqué
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
	
	
	
	
	
		
Via une table de paramètres TB_PARAMS
		
	
	
	
	
	
	
		
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é
	
	
	
	
	
		
Utilisation - exemple chargement d'une table des départements
		
	
1ère méthode
	
	
	
	
	
		
2nde méthode
	
	
	
	
	
		
Visualisation sous forme de Carte 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