Applescript: открыть файл Excel и сохранить в другом формате (то же имя и путь)

У меня есть папка файлов.xls, некоторые из которых являются подлинными файлами Excel, а некоторые - файлами Excel xml (но все еще с расширением.xls). Чтобы работать с файлами в отдельной программе, я пытаюсь преобразовать их все в согласованный формат (Excel 98-2004) и хочу использовать для этого яблочный скрипт, сохраняя при этом исходные имена файлов и структуру каталогов.

На данный момент у меня есть рабочий цикл и список файлов, и я выполняю все, кроме функции сохранения:

set file_Name to "/Users/me/path/to/data.xls"

tell application "Microsoft Excel"
    activate
    open file_Name
    save workbook as workbook (active workbook) filename file_Name file format (Excel98to2004 file format) with overwrite
    close workbooks
    quit
end tell

Когда я запускаю этот код, я получаю следующие ответы:

tell application "Microsoft Excel"
    activate
    open "/Users/drewmcdonald/Desktop/Madhupur_10February2014.xls"
    get active workbook
        --> active workbook
    save workbook as workbook (active workbook) filename "/Users/drewmcdonald/Desktop/test.xlsx"
        --> missing value
    close every workbook
    quit
end tell

Электронные таблицы успешно открываются и закрываются, но формат файла не меняется, и я не знаю, что делать с ошибкой "пропущенное значение". Есть идеи, как заставить это работать? Спасибо!

РЕДАКТИРОВАТЬ: только что заметил, что параметр формата файла отсутствует в тексте ответа, поэтому я предполагаю, что проблема там.

1 ответ

Решение

Понял.

я нуждался в set переменная имени книги get full name of active workbook прежде чем пытаться сохранить его. Это связано с тем, что имя рабочей книги, которое Excel назначает при открытии листов, несколько противоречиво. Конечный код выглядит так:

set file_Name to "/Users/me/path/to/data.xls"

tell application "Microsoft Excel"
    activate
    open file_Name
    set wkbk_name to get full name of active workbook
    save workbook as workbook wkbk_name filename file_Name file format Excel98to2004 file format with overwrite
    close workbooks
    quit
end tell
Другие вопросы по тегам