Power Query Comment créer exemple avec Json.Document(Binary.Decompress

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Je vois beaucoup de code M sur le net qui utilise Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText pour créer des données de test directement dans PQ
PowerQuery:
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bY8xDsIwDEXvkgkkS7GdxElGoAdgYqk6IEAMgCqh9v4kLW1DxeDBfnrfdl2r47u99pdOgTq1z/512zzu29RU5+6mGqjVLjUxFSOzJi3zkDASRO8mxtoNbJ+ZxcIZ54fREQski8MDq9LAoGEQu9aGOCaD4ORvJLvogXh9Yo60IoVlyuNNYJh32S/JeRy4IKFwxPhlC2rGeQ8HDBOJE8iKCdGAX+6mCY5fRQS2BSw+FmIIv6j5AA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"(blank)" = _t, #"(blank).1" = _t, #"(blank).2" = _t])
in
    Source
Mais comment faire pour obtenir une faire chaine personnalisée encodée en base64 pour créer ses propres exemples ?

J'ai essayé le mode opératoire suivant mais cela ne doit pas être le bon
J'ai voulu recréer moi-même cette chaine bY8xD....j5AA==
1) j'ai enregistrer en CSV le tableau résultant du code PQ ci-dessus
2) J'ai converti ce CSV en JSON (avec https://csvjson.com/csv2json)
3) J'ai "encodé" en base64 le fichier JSON (avec https://codebeautify.org/json-to-base64-converter)

Mais je n'obtiens pas du tout la même chaine de caractère.

Je sollicite donc l'aide des PQristes chevronnés du forum pour savoir comment faire.
 
Solution
Bonjour Staple, le forum,

Tu trouveras ici la fonction EncodeSourceTable qui prend en entrée un table (qu'elle vienne d'un fichier csv, d'un tableau, ou autre) et retourne la chaine de caractères Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText(… correspondante.
Il suffit alors de la copier pour la mettre dans une étape.

A+

Staple1600

XLDnaute Barbatruc
Re

Finalement, je viens de trouver grâce à ce site une solution directement dans PQ

Mais si il existe un mode opératoire pour créer un jeu de données à partir d'un CSV(*), je suis preneur

Ci-dessous code M obtenu avec l'assistant PQ
(en cliquant donc sur Entrer des données)
Code:
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8kpNzFPSUQpILMosBtKGBgZKsTrRSr6JRclAblB+aSpI2hQkHAsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Colonne 1" = _t, #"Colonne 2" = _t, #"Colonne 3" = _t]),
    #"Type modifié" = Table.TransformColumnTypes(Source,{{"Colonne 1", type text}, {"Colonne 2", type text}, {"Colonne 3", Int64.Type}})
in
    #"Type modifié"

(*) c'est plus rapide pour moi de créér un exemple sur une feuille Excel puis de transformer cet exemple
avec
Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("chaine de caractère en base64"
 

mromain

XLDnaute Barbatruc
Bonjour Staple, le forum,

Tu trouveras ici la fonction EncodeSourceTable qui prend en entrée un table (qu'elle vienne d'un fichier csv, d'un tableau, ou autre) et retourne la chaine de caractères Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText(… correspondante.
Il suffit alors de la copier pour la mettre dans une étape.

A+
 

Statistiques des forums

Discussions
315 089
Messages
2 116 098
Membres
112 661
dernier inscrit
ceucri