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