Intégration Excel dans une Liste Sharepoint

Étiquetté : ,

  • Intégration Excel dans une Liste Sharepoint

    Posté par Mick sur 31 mars 2025 à 10h49

    Salut la cummu,

    Je tente de faire une mise à jour d’une liste Sharepoint depuis un fichier excel.

    Mais je ne parviens pas à paramétrer l’automate correctement.

    Il faut bien le distingo entre une ligne à mettre à jour, mais le traitement est différent.
    Si c’est une nouvelle ligne il prend bien les colonnes de la feuille excel.

    Par contre si c’est une mise à jour, il ne prends pas les colonnes Excel. Le Item() concerne ici la boucle for Eatch, et il me mets les entrées de la LSP à blanc.

    Ici j’ai essayé de forcer les entées Excel, mais ça ne fonctionne pas.

    Petite question subsidiaire qui est surrement liée, je n’arrive pas à mettre à jour le champ date sur une mise à jour.
    Autant une nouvelle ligne j’utilise la commande suivante :

    <div>
    <div>parseDateTime(item()?[‘Date’],’fr-FR’,’dd/MM/yyyy’)

    Mais en mise à jour, ça ne fonctionne pas.

    Merci de votre aide.</div>
    </div>

    • Cette discussion a été modifiée Il y a 2 jours, 10 heures par  Mick.
    Mick a répondu Il y a 5 heures, 23 minutes 3 Membres · 6 Réponses
  • 6 Réponses
  • DavidZed

    Membre
    1 avril 2025 à 9h42

    Hello,

    Je pense que l’ID renseigné n’est pas le bon :

    Si tu mets à jour une ligne depuis un fichier excel, il faut que l’excel contienne et fournisse l’ID de la ligne SharePoint à mettre à jour
    C’est d’ailleurs une étape à ajouter dans la branche création d’un élément : ajouter l’ID de l’item SharePoint nouvellement créé dans le fichier Excel, ce qui permettra de savoir quelle ligne mettre à jour et par le même occasion, indiquera que la ligne a déjà été créée.

    Pour la date il faudra peut être la fournir au format excel: Nb de jours écoulés depuis le 01/01/1900

  • Mick

    Membre
    1 avril 2025 à 10h23

    Merci de ta réponse,
    Enrichir un ID ça va aider en effet.

    C’est le champ en bas qu’il faut renseigner ?
    Il indique type de contenu ID, ce qui voudrait dire le format, plutot que la valeur ?

    Je ne trouve pas de bloc pour “mettre à jour l’élèment nouvellement crée. 🤔

    Ici je prends un No unique que j’identifie comme l’ID.

    • Cette réponse a été modifiée Il y a 2 jours, 10 heures par  Mick.
  • Nicolas

    Membre
    1 avril 2025 à 11h59

    Bonjour Mick,

    Ce que David veut dire, c’est qu’il faut que tu rajoute dans ton fichier Excel une colonne identifiant la ligne de l’élément dans SP (l’Id, donc…). Tu le récupère à la création d’un nouvel élément et tu l’ajoute dans ton fichier.
    Le Type de contenu dans SP te permet (entre autre, mais le reste est un peu obsolète) de regrouper des colonnes entre elles, comme ça quand tu rentre un élément, en fonction du type de contenu que tu choisis, du a des colonnes différentes à renseigner…

  • Mick

    Membre
    1 avril 2025 à 14h00

    🤔 Merci de vos réponses.
    Pour préciser les choses :

    1. Je récupère un fichier EXCEL dans une messagerie Outlook
    2. Je détache le fichier dans un oneDrive et/ou sharepoint
    3. Je récupère les lignes pour les ajouter dans une Liste SharePoint (LSP) si la ligne n’existe pas.
    4. Je mets à jour les lignes existantes.

    Mon fichier excel venant de l’extérieur, je ne suis pas en mesure de lui indiquer les ID de la LSP au préhalable.
    Cependant la ligne No est une clée primaire. Je pensais pouvoir l’utiliser comme ID, et/ou pour identifier les lignes à mettre à jour.

    L’idée serait d’ajouter une colonne ID dans le fichier Excel, que je vais remplir en fonction de la présence ou non de la ligne dans Sharepoint ( test sur la colonne no).
    J’utilise ensuite la colonne ID nouvellement créée pour faire l’importation. Ce qui devrait fonctionner 100 fois sur 100.

    C’est bien l’idée ?

    • Cette réponse a été modifiée Il y a 2 jours, 7 heures par  Mick.
  • DavidZed

    Membre
    1 avril 2025 à 16h26

    Ok, ça complexifie pas mal le problème…

    dans ce cas de figure, il faudra créer une boucle sur chaque ligne excel :

    • En première action dans la boucle tu ajoutes un “obtenir les éléments” (SharePoint) avec en requête de filtre :
      No eq ‘<Valeur dynamique de NO de la ligne Excel>’
    • Ensuite il faudra ajouter une condition sur l’expression : Lenght(outputs(‘obtenir_les_éléments’)?[‘body/value’]) >0
      • Dans la branche false, tu peux mettre ton action de création de ligne
      • Dans la branche true, il faudra mettre l’action “mettre à jour un élément” avec pour l’ID, l’expression : first(outputs(outputs(‘obtenir_les_éléments’))?[‘body/value’])?[‘ID’]
        Le first est indispensable pour éviter de générer une nouvelle boucle.
        Et pour les autres valeurs, récupérer les valeur de la boucle actuelle
  • Mick

    Membre
    3 avril 2025 à 15h43

    Merci beaucoup,

    Je vais tester. C’est un peu complexe pour faire quelque chose qui est assez courant.

    Enfin, tant que ça marche. 😉

Connectez-vous pour répondre.