Expand de colonnes

Accueil – Le CFO masqué Forums Power Query Expand de colonnes

3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Articles
  • #42717
    Julien
    Participant

    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évelopper

    Dans 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.
    #64686
    gbodin
    Participant

    Bonjour,

    Y’a-t-il une réponse pour ce problème ? j’ai exactement le même.

    Merci d’avance.
    Geoffroy BOdin

    #64687
    Sophie Marchand
    Participant

    Bonjour,

    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

3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.