Applescript: automatiza Excel para convertir .xls a .csv

Estoy tratando de procesar por lotes la conversión de una carpeta de files .xls a .csv usando Applescript para MS Excel V15.15. Estoy usando una muestra que encontré en línea para modelarla:

set theOutputPath to (path to desktop folder as string) & "My Saved Workbook.csv" tell application "Microsoft Excel" tell active workbook save workbook as filename theOutputPath file format CSV file format end tell end tell 

Esta es la secuencia de commands que falla constantemente, aunque parece que se parece mucho al model:

  • Applescript para copyr la carpeta (y el contenido) a la location actual?
  • Ejecute AppleScript desde el script bash
  • compartir fotos automáticamente en Photos iCloud Shanetworking Albums
  • Enviar notifications push al iPhone a través de AppleScript
  • ¿Recibe una notificación del centro de notificación cuando alguien ssh está en mi computadora?
  • Nombre de usuario único para DMG
  •  set csv_folder to "Macintosh HD:Users:Me:CSV:" & file_name as string tell application "Microsoft Excel" open Source_file tell active workbook save workbook as filename csv_folder file format CSV Mac file format--> (*This generates error "Microsoft Excel got an error: Parameter error." number -50 *) end tell end tell 

    También he intentado:

     set csv_folder to "Macintosh HD:Users:Me:CSV:" & file_name & ".csv" as string tell application "Microsoft Excel" open Source_file tell active workbook save workbook as filename csv_folder --> (*This usually generates error "Microsoft Excel got an error: Parameter error." number -50 the first time it is run, then works the 2nd time *) end tell end tell 

    EDITAR: Esta última secuencia de commands, aunque completa, no da como resultado un verdadero file csv, ya que cuando lo abro con BBEdit muestra el código, no el contenido del file.

    También he intentado configurar el cv_folder sin usar "como cadena". ¿Alguna idea de por qué esto falla? No parece gustarle la syntax "save libro de trabajo como nombre de file el formatting de file CSV formatting de file de salida".

  • ¿Cómo puedo reiniciar una aplicación actualmente en ejecución con AppleScript?
  • ¿Qué hace que OS X marque una carpeta como Cuarentena?
  • ¿Cómo se llama el área del menu cerca del reloj?
  • Después de habilitar TRIM, ¿debo eliminar el espacio libre?
  • Lanzamiento de ciertos progtwigs en el inicio en su propio espacio a pantalla completa
  • ¿Cómo fuerza la vista previa de los espacios para usar siempre una image en El Capitán?
  • 2 Solutions collect form web for “Applescript: automatiza Excel para convertir .xls a .csv”

    Para Excel V15 , use una ruta de posix, como esta:

     set theOutputPath to POSIX path of ((path to desktop folder as string) & "My Saved Workbook.csv") tell application "Microsoft Excel" tell active workbook save workbook as filename theOutputPath file format CSV Mac file format with overwrite end tell end tell 

    Editar 1 –

    Lo pruebo en V15.15 y V15.16 , es un error cuando la carpeta de destino no contiene un file de Excel recientemente abierto. Entonces úsalo

     set theOutputPath to POSIX path of ((path to desktop folder as string) & "My Saved Workbook.csv") set parentFolder to (do shell script "dirname " & quoted form of theOutputPath) as POSIX file -- get the parent folder tell application "Microsoft Excel" alias parentFolder -- a folder where to save a new file, workaround to a bug when the destination folder doesn't contains a recently opened Excel file save workbook as active workbook filename (theOutputPath) file format CSV Mac file format with overwrite end tell 

    Editar 2 –

    O crea un file vacío como este

     set theOutputPath to POSIX path of (path to desktop folder as string) & "My Saved Workbook.csv" do shell script "touch " & quoted form of theOutputPath -- create an empty file set theOutputPath to theOutputPath as POSIX file tell application "Microsoft Excel" save workbook as active workbook filename (theOutputPath) file format CSV Mac file format with overwrite end tell 

    Edición 3 : Tenía otra idea, sería el script más simple.

     set theOutputPath to (path to desktop folder as string) & "My Saved Workbook.csv" tell application "Microsoft Excel" alias theOutputPath -- workaround to a bug when the destination folder doesn't contains a recently opened Excel file save workbook as active workbook filename theOutputPath file format CSV Mac file format with overwrite end tell 

    Parece que el error de parámetro se debe a cambios con Office 2016 para Mac.

    http://preview.alturl.com/f8srb

    Por lo que he aprendido de ese hilo, Excel V15 solo puede escribir automáticamente (desencadenado por AppleScript) dentro de la ruta ~ / Library / Containers / com.microsoft.excel /. Parece que tendré que volver a la versión anterior de Excel, o tal vez escribir los files en esa carpeta y luego copyr a la location deseada. Qué PITA.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).