Problème sur combinaison fichier excel

  • Problème sur combinaison fichier excel

    Posté par jean-françois sur 10 janvier 2025 à 11h04

    Bonjour à tous,

    J’ai uen petite question pour laquelle je ne trouve pas de réponse.

    Je combine plusieurs fichiers EXCEL dans un même dossier, mais ceux-ci n’ont qu’une seule feuille qui ne porte jamais le même nom. Tous ces fichier sont identiques en structure et seul le nom de l’onglet change.

    Du coup, je dois systémétiquement modifier le nom de l’onglet avant intégration, comment puis-je mettre un nom générique comme “sheet1 par exemple”

    Dans le cas ci-dessous, l’onglet du fichier se nomme à l’origine AS600W01_xxxxxx (qui est un compteur)

    Merci

    <h5>let
    Source = Excel.Workbook(Paramètre1, null, true),
    AS600W01_Sheet = Source{[Item=”AS600W01″,Kind=”Sheet”]}[Data],
    #”En-têtes promus” = Table.PromoteHeaders(AS600W01_Sheet, [PromoteAllScalars=true])
    in
    #”En-têtes promus”</h5>

    jean-françois a répondu Il y a 6 jours, 14 heures 3 Membres · 4 Réponses
  • 4 Réponses
  • Olivier

    Membre
    10 janvier 2025 à 12h52

    salut. essaye ça ?

    let
        Source = Excel.Workbook(Paramètre1, null, true),
        // Obtenir le premier onglet, quel que soit son nom
        FirstSheet = Source{0}[Data],
        // Promouvoir les en-têtes
        #"En-têtes promus" = Table.PromoteHeaders(FirstSheet, [PromoteAllScalars=true])
    in
        #"En-têtes promus"
  • Jonathan

    Membre
    10 janvier 2025 à 16h14

    Bonjour Jean-François,

    Voici un exemple de code avec le connecteur dossier (ce serait pareil avec le dossier SharePoint).

    Cela concerne un exemple simple sans aucune transformation (j’ai juste promu les entêtes grâce au paramètre “true” de la fonction Excel.Workbook). Si c’était plus complexe, on peut variabiliser les paramètres au travers de paramètres dans une fonction. Les paramètres seraient donc le fichier (la colonne Content) et le nom de la feuille (que l’on trouverait grâce à la fonction Excel.Workbook).

    let
    // Étape 1 : Charger tous les fichiers d’un dossier spécifique
    Source = Folder.Files(“C:\Users\Admin\Downloads”),

    // Étape 2 : Filtrer uniquement les fichiers Excel ayant l’extension .xlsx
    Filter_Excel = Table.SelectRows(Source, each ([Extension] = “.xlsx”)),

    // Étape 3 : Ajouter une colonne pour extraire les données des fichiers Excel
    Add_Excel_File = Table.AddColumn(Filter_Excel, “Custom”, each Excel.Workbook([Content], true)),

    // Étape 4 : Supprimer les colonnes inutiles pour ne garder que les données extraites
    Delete_Columns = Table.SelectColumns(Add_Excel_File, {“Custom”}),

    // Étape 5 : Développer la table des données pour accéder aux différentes feuilles ou tables Excel
    Develop_Table_Data = Table.ExpandTableColumn(Delete_Columns, “Custom”, {“Data”}, {“Data”}),

    // Étape 6 : Développer la table “Data” pour extraire les colonnes spécifiques (Date et Montant)
    Develop_Data = Table.ExpandTableColumn(Develop_Table_Data, “Data”, {“Date”, “Montant”}, {“Date”, “Montant”})
    in
    // Étape finale : Retourner la table développée avec les colonnes “Date” et “Montant”
    Develop_Data

  • Jonathan

    Membre
    10 janvier 2025 à 16h17

    Voici le lien vers mon fichier d’exemple contenant deux méthodes différentes (Avec ou sans fonction).

    • Cette réponse a été modifiée Il y a 1 semaine par  Jonathan.
  • jean-françois

    Membre
    11 janvier 2025 à 15h20

    Merci à tous pour vos retours !

    J’ai pris la solution simple avec FirstSheet est ça marche nickel.

    A bientôt

Connectez-vous pour répondre.