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:

  • Ayuda con AppleScript moviendo posts de correo electrónico
  • ¿Cómo averiguo los commands de AppleScript disponibles para una aplicación en particular?
  • Coloque el número de página en un documento de Pages utilizando AppleScript
  • ¿Cómo agregar un file AppleScript a la barra de herramientas del Finder para ejecutar AppleScript?
  • ¿Alguna forma de get la list "Abrir con ..." a través de AppleScript?
  • Guarde los files adjuntos de Mail.app según el tema
  •  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".

  • ¿Hay alguna aplicación que mueva los menus desde la barra de menu y los muestra en una pequeña window?
  • Copiar text en vim al portapapeles global
  • ¿Hay una utilidad gratuita para amplificar el volumen del sistema?
  • ./ vs ejecución normal
  • Cómo identificar la aplicación del icono de barra de menu colgado
  • ¿La tienda de aplicaciones sigue mostrando la versión beta de El Capitán meses después de retirarse de los progtwigs beta?
  • 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).