Accueil – Le CFO masqué › Forums › Power Query › Expand de colonnes
- Ce sujet contient 2 réponses, 3 participants et a été mis à jour pour la dernière fois par Sophie Marchand, le il y a 4 années et 8 mois.
-
AuteurMessages
-
19 avril 2018 à 17 h 36 min #42717JulienParticipant
Bonjour à tous,
J’aimerais importer un XML dans Excel via Power Query.
Certaines colonnes sont bien importées, mais d’autres ne sont pas très bien reconnues, et j’ai besoin de les “expand”, ou les développerDans le screenshot de l’étape 1, voici ce que j’obtiens : 2 colonnes (Node et Table)
Pour avoir toutes les colonnes du XML, qui sont cachées dans la colonne Table, je dois cliquer sur l’icone avec les deux flèches à côté du titre de la colonne “Table” pour développer toutes les colonnes (résultat dans étape2.gif)
Malheureusement, j’ai encore des colonnes vides, pour lesquelles, apparait seulement la valeur “Table”, et pour lesquelles je dois aussi développer manuellement (voir étape3.gif).
Y’a-t-il un moyen pour que tout se développe d’un coup, avec du code M ou autre, sans que je doive le faire manuellement ?
Avant l’étape 1, j’ai le code suivant :
let Source = Xml.Tables(Web.Contents("source du xml")) in Source
Quand je clique sur l’icone qui permet de développer la colonne Table, ca me donne le code :
let Source = Xml.Tables(Web.Contents("source du xml")), #"Table développé" = Table.ExpandTableColumn(Source, "Table", {"Nom-de-l-039-entreprise", "Pr-nom", "Nom", "Provient-de-la-zone", // etc.... j'ai 40 colonnes donc je ne met pas tout ici pour pas que ca soit imbuvable in #"Table développé"
Déjà, première question, y-t-il une ligne de code qui me permettrait de développer toutes les colonnes plutot que de devoir indiquer les noms de chaque colonnes. Je ne voudrais pas avoir de problème si le propriétaire du XML décide d’ajouter une colonne qui n’est pas répertoriée dans mon code.
Lorsque je développe une autre colonne (étape 3), par exemple la colonne “Table.Poste-t-l.-Ent.”, qui correspond au numéro de téléphone de l’entreprise, voici le code :
let Source = Xml.Tables(Web.Contents("source du xml")), #"Table développé" = Table.ExpandTableColumn(Source, "Table", {"Nom-de-l-039-entreprise", "Pr-nom", "Nom", "Provient-de-la-zone", // etc.... j'ai 40 colonnes donc je ne met pas tout ici pour pas que ca soit imbuvable #"Table.Poste-t-l.-Ent. développé" = Table.ExpandTableColumn(#"Table développé", "Table.Poste-t-l.-Ent.", {"Element:Text"}, {"Table.Poste-t-l.-Ent..Element:Text"}) in #"Table.Poste-t-l.-Ent. développé"
Merci et bonne journée,
Julien
Attachments:
You must be logged in to view attached files.15 mai 2020 à 9 h 22 min #64686gbodinParticipantBonjour,
Y’a-t-il une réponse pour ce problème ? j’ai exactement le même.
Merci d’avance.
Geoffroy BOdin15 mai 2020 à 9 h 34 min #64687Sophie MarchandParticipantBonjour,
Quelqu’un a déjà partagé une fonction pour réaliser cette tâche sur GitHub https://gist.github.com/Mike-Honey/f5f3f708310eb1de7f4a.
Au plaisir,
Sophie
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.