Conversion de fichiers csv en Excel avec Automator

Quetzalcoatl

Membre confirmé
Bonjour à toutes et tous,
J'ai très régulièrement besoin de convertir des fichiers csv en fichiers xlsx et j'aimerai bien avoir une application automator voire une action rapide pour faire ça. J'ai crée une application automator et je passe volontairement par Numbers car je me suis rendu compte que l'appli me conserve bien le format des fichiers CSV. Seulement je galère avec cet apple script qui me renvoie sans arrêt une erreur "L’action « Exécuter un script AppleScript » a rencontré une erreur : « La variable Excel n’est pas définie. » (dans mon script automator j'utilise bien au préalable deux actions "demander les éléments du Finder" et "Ouvrir les éléments du Finder" :

on run {input, parameters}
tell application "Numbers"
activate
repeat with csvFile in input
open csvFile
tell document 1
set fileName to name
set filePath to (path to desktop folder as text) & fileName & ".xlsx"
export to filePath as Excel
close
end
tell
end
repeat
end
tell
return
input
end run
Est-ce que quelqu'un aurait une idée pour me sortir de là ?
Merci par avance !
 
Bonjour,
Plusieurs erreurs dans ton script.
1 - utilise plutôt front document à la place de document 1.
2 - La commande d'export s'adresse à l'application numbers, pas au document donc tu n'es pas dans le bon bloc tell.
3 - La syntaxe de la commande export est : (export document to file chemin as format) format étant le nom de l'application "microsoft excel"

essai ce script modifié:
Je n'ai pas pu le tester ! dis moi si c'est bon.

Bloc de code:
on run {input, parameters}
    tell application "Numbers"
        activate
        repeat with csvFile in input
            open csvFile
            tell front document
                set fileName to name
                set filePath to (path to desktop folder as text) & fileName & ".xlsx"
            end tell
            export front document to file filePath as Microsoft Excel
            tell front document
                close
            end tell
        end repeat
    end tell
    return input
end run
 
content pour toi !
Bonne journée !
 


Écrivez votre réponse...