Conversion .csv to .xlsx

  • Conversion .csv to .xlsx

    Posté par Emmanuel sur 4 novembre 2024 at 9h45

    Bonjour à tous,

    je cherche à procéder à la conversion d’un fichier .csv en fichier .xlsx
    Le fichier .csv est hébergé sur un espace documents partagés Sharepoint.
    Mon flux se décompose de la façon suivante :
    1. Action Sharepoint > Obtenir le contenu du fichier (le .csv)
    2. Action Data/Message > Conversion base64ToBinary
    3. Copie d’un fichier base .xlsx présent dans sur le même espace d’hébergement Sharepoint
    4. Coller le contenu du message obtenu dans l’action 1. obtenir le contenu du fichier

    J’obtiens un message d’erreur qui m’indique que le format des données n’est pas au format attendu.
    Vraisemblablement le contenu copé dans le message est de type ‘array’ et le contenu attendu dans le ‘coller’ est de type string…..

    Quelqu’un a-t-il déjà essayé (et réussi) à effectuer ce type de conversion ?

    Merci d’avance !

    R3dKap a répondu 1 week, 1 day ago 2 Membres · 10 Réponses
  • 10 Réponses
  • R3dKap

    Member
    4 novembre 2024 at 11h15

    Salut @Emmanuel,

    Tu as vu cette vidéo ? Ca peut t’aider ?

    https://www.youtube.com/watch?app=desktop&v=2TIolfmtWQM

  • Emmanuel

    Member
    6 novembre 2024 at 23h32

    Merci @R3dKap.
    Non pas vraiment. Je bloque toujours sur mon action ‘Message/Compose’ qui applique la fonction base64ToString à l’action ‘obtenir le contenu du fichier’ où je lis mon csv. J’obtiens un message d’erreur qui m’indique que "The template language function 'base64ToString' expects its parameter to be a string. The provided value is of type 'Object'".....

  • R3dKap

    Member
    7 novembre 2024 at 9h15

    Pourquoi essaies-tu de décoder le contenu de ton fichier CSV de base64 à string ? Un fichier CSV c’est du texte normalement, y’a pas besoin de conversion. Regarde ce que te retourne l’action Obtenir le contenu du fichier… et mets-nous peut-être une capture 😉

  • Emmanuel

    Member
    7 novembre 2024 at 22h20

    Ci-joint une capture (on n’y voit pas tout). J’ai réduit le flux au maximum (à obtenir le contenu du fichier).
    Voilà ce que j’obtiens en $content :

    <div>
    <div>"$content": "Q09ERSxTT0NJRVRFLEFEUkVTU0UxLEFEUkVTU0UyLEFEUkVTU0UzLENQLFZJTExFLFBBWVMNCiJBQkMxM0EiLCJBQkMgSU5EVVNUUklFIiwiQ1MyNyIsIlBMRVVNRUxFVUMiLCIiLCIzNTE2NCIsIk1PTlRGT1JUIFNVUiBNRVUgQ0VERVgiLCJGcmFuY2UiDQo="</div>
    <div>}</div>
    <div>À priori il s’agit bien de contenu en base 64 qu’il faut convertir en binaire….</div>
    <div> </div>
    <div></div>
    </div>

    • This reply was modified 1 week, 6 days ago by  Emmanuel.
  • R3dKap

    Member
    8 novembre 2024 at 11h36

    C’est que ton fichier CSV n’est pas un fichier CSV.

    Voilà à quoi ressemble un fichier CSV créé à partir d’Excel :

    C’est du texte simple et basique ou les données des différentes colonnes sont séparées par un délimiteur (ici un point-virgule mais ça peut être une tabulation ou une virgule ou autre). Si tu charges un fichier comme celui-là dans Power Automate, tu obtiendras directement le texte sans encodage.

    Est-ce que ton fichier ne serait pas plutôt un VRAI fichier Excel (même s’il a une extension .CSV) ? Auquel cas effectivement il va te ramener le contenu encodé en base64. Pour le vérifier ouvre-le dans un Notepad.

    Comment ton fichier a-t-il été créé ?

    Peux-tu mettre ton fichier CSV en question dans l’onglet Documents ici dans le canal Power Apps ?

  • Emmanuel

    Member
    12 novembre 2024 at 10h54

    Mon fichier CSV est généré depuis l’application Sage 50.
    Il s’agit bien d’un fichier csv et non d’un fichier Excel. Je l’ouvre en tant que tel dans Sublime Text.
    Il est encodé Windows 1252 avec fins de lignes Windows.
    S’agissant d’un export de fichier clients, et donc avec une notion de confidentialité, je t’ai joint un exemple à une seule ligne, juste pour voir comment est constitué le fichier exporté.

    Pour moi, ça n’est pas le fond du problème. Power Automate indique explicitement qu’à l’action ‘obtenir le contenu du fichier’ Power Automate reçoit un objet type tableau et non une chaîne de caractères…..

    Ci-joint le lien vers le pdf : export_societes_test.csv

  • R3dKap

    Member
    12 novembre 2024 at 12h16

    Salut @Emmanuel,

    C’est étrange passke par exemple avec le mini CSV que j’ai donné en exemple plus, placé dans SP, lorsque je le charge j’ai bien son contenu texte :

    Je vais essayer avec le tien tel quel…

  • R3dKap

    Member
    12 novembre 2024 at 12h21

    Avec le tien ça marche aussi 🤔 :

    Comment as-tu paramétré ton action “Obtenir le contenu du fichier” ? As-tu bien laissé le paramètre “Déduire le type de contenu” à Oui ?

  • Emmanuel

    Member
    12 novembre 2024 at 14h03

    Très étrange.
    J’ai repris un flux (quasi) identique à celui de ta réponse. Je suis parti du même fichier ‘export_societes_test.csv’. Voilà ce qu j’obtiens :

    eet pourtant l’action ‘Obtenir le contenu du fichier’ semble bien paramétrée…..


    Est-ce que tu paramètres ton action ‘Initialiser la variable’ comme suit ? :

    • This reply was modified 1 week, 1 day ago by  Emmanuel.
    • This reply was modified 1 week, 1 day ago by  Emmanuel.
  • R3dKap

    Member
    12 novembre 2024 at 20h56

    Etrange effectivement… Passke oui ça l’air configuré comme chez moi. Donc, c’est le fichier. Est-ce que tu peux charger le fichier que t’as utilisé (ou une partie du moins) dans l’onglet Documents du canal Power Automate ? 🙏

Connectez-vous pour répondre.