Сохранение диаграммы в формате .jpeg - PullRequest
1 голос
/ 10 ноября 2010

Я уже несколько лет использую диаграммы Excel для создания компьютерных анимационных фильмов для преподавания физики.Однако при преобразовании из VBA в AppleScript у меня возникли проблемы с сохранением диаграмм в виде файлов .jpeg.Я попробовал приведенный ниже скрипт:

tell application "Microsoft Excel"
 set filebasename to get value of cell "MovieName"
 activate object chart object filebasename of sheet 1
 set testfile to "test.jpg"
 save as picture active chart picture type save as JPG file file name testfile
end tell

, но редактор AppleScript говорит мне, что активная диаграмма не понимает инструкцию сохранения в виде рисунка.Мой обходной путь состоял в том, чтобы использовать скрипт:

tell application "Microsoft Excel"
 set filebasename to get value of cell "MovieName"
 activate object chart object filebasename of sheet 1
 copy picture active chart appearance screen format picture
end tell

и затем вставить буфер обмена в GraphicConverter, чтобы получить файл .jpeg.

Что я делаю, что глупо?

1 Ответ

0 голосов
/ 11 ноября 2010
tell application "Microsoft Excel"
    set theValue to get value of cell "A1"
    set myNewChartObject to make new chart object at sheet 1 with data theValue with properties {width:100.0, height:100.0}
    save as picture myNewChartObject picture type save as JPG file file name (((path to desktop folder) as text) & "myChart.jpg") as text
end tell

Добавить соль по вкусу. Небольшой анализ того, что здесь ...

Команда make используется для создания практически всех видов объектов и возвращает вам созданный объект. activate нет, и, вероятно, именно поэтому save as picture не удалось, потому что у вас не было объекта для сохранения. Я бы рискнул предположить, что active chart недостаточно для выполнения команды, потому что объект, который в данный момент активен, может измениться без вашего осознания. Как правило, рекомендуется захватить объект, применить его к переменной и передать его вместо этого, потому что тогда вы знаете , с чем вам придется работать.

...