Écrit par : b00ss 27 May 2020, 14:28
Bonjour à tous,
Je souhaiterais, grâce à un Applescript (ou autre)... "convertir à la vollée" tout nouveau fichier CSV entrant en XLS...
Est-ce possible ?
Merci,
Écrit par : baron 27 May 2020, 17:58
Dans le Finder, tu sélectionnes un de tes fichiers .csv, tu demandes à Lire les informations (Cmd-i), tu choisis Ouvrir avec… (tu choisis Excel) et tu cliques sur Tout modifier.
Un double-clic sur un fichier .csv l'ouvrira alors directement dans Excel.
Écrit par : PBell 27 May 2020, 20:08
Bonsoir,
Sur le fond, tu as raison Baron: les fichiers CSV s'ouvriront avec Excel, mais ce n'est pas à proprement parlé une conversion car les fichiers restent CSV.
Voici un script qui peut être utilisé pour vraiment convertir:
1) en direct: il demande la sélection d'un dossier et converti tous les csv qui se trouvent dans ce dossier en .xlsx
2) via un drop de fichiers sur l'icône de ce script (enregistré en tant qu'application)
3) en action de dossier: il converti les csv déposé dans le dossier en xlsx.
La propriété deletecsv est mise à "true" par défaut.
Elle indique que le fichier csv d'origine doit être supprimé après conversion. Pour garder ce fichier, mettre "false".
CODE
-- Converti des fichiers csv en Excel
-- Attention:
-- pour pouvoir utiliser ce script en mode drop fichier, il faut l'enregistrer sous forme d'application
-- mais pour l'utiliser en action de dossier dans le dossier Folder Action de la bibliothèque il doit être enregistré en script
property deletecsv : true -- true si le fichier csv être supprimé après conversion
on run -- mode application ou script: demande un dossier et converti tous les csv contenus en XL
-- sélection du dossier des fichiers csv à convertir
tell application "Finder" to set liste to (document files of (choose folder "Sélectionner le dossier contentant les fichiers csv à convertir") whose name extension is "csv") as alias list
repeat with uncsv in liste
csv_to_xl(uncsv)
end repeat
end run
on open liste -- mode application: drop des fichiers csv pour les convertir en XL
repeat with uncsv in liste
if (uncsv as string) ends with ".csv" then csv_to_xl(uncsv)
end repeat
end open
on adding folder items to ceDossier after receiving fichiers -- mode script
-- il faut filtrer les fichiers de type csv ajoutés au dossier
set liste to {}
tell application "Finder"
repeat with un_fichier in fichiers
set f to file un_fichier
if (name of f ends with "csv") then set end of liste to un_fichier
end repeat
end tell
repeat with uncsv in liste
csv_to_xl(uncsv)
end repeat
end adding folder items to
on csv_to_xl(f)
tell application "Microsoft Excel"
open f
set wb to active workbook
set XLfichier to (text 1 thru -4 of (f as string)) & "xslx"
save workbook as wb filename XLfichier
close wb
end tell
if deletecsv then
tell application "Finder" to delete f
end if
end csv_to_xl
J'ai un souci avec l'action de dossier.
Si le script est enregistré en tant qu'application dans le dossier des folder action script de la bibliothèque, il ne se lance pas.
J'ai du le laisser en mode script pour l'utiliser. Si quelqu'un peut m'indiquer pourquoi...? Je précise que ce n'est pas du aux droits ou autorisations que j'ai bien définis dans les préférences. (je suis sous El Capitain).
Cordialement