2016-09-28 1 views
1

В настоящее время я нахожусь в завершающей стадии создания рабочего процесса для очень утомительного и затянувшегося еженедельного процесса с использованием данных в excel для вставки изображений.Applescript - Сохранение размеров изображения при вставке изображений в Excel

Мне удалось разработать комбинацию Automator и Applescript для достижения рабочего процесса, который получает изображения в excel, в нужном месте, но с моим текущим applescript, они входят в заданный размер, 100 x 100

Вот вопрос:

Мне нужно все изображения, чтобы прийти на высоте 100px, но мне нужно ширину, чтобы быть гибким. Кажется, я не могу понять последний фрагмент этого, который, как я полагаю, будет командой Applescript для Excel, чтобы заблокировать соотношение сторон.

Вот текущий AppleScript я использую для фактического импорта изображений:

tell application "Finder" 
    set imageFolder to "Macintosh HD:Users:adlife:Desktop:Temporary_Image_Hold - Copyright Filings" 
end tell 

tell application "Finder" 
    set imageList to files of folder imageFolder 
end tell 

tell application "Microsoft Excel" 
    set imageHeight to 100 
    set imageWidth to 100 
    set imageCount to count of imageList 
    set theRange to active cell of worksheet 1 of workbook 1 
    set thisStep to 0 
    set theLeft to left position of active cell 

repeat with imageFile in imageList 

    set theTop to (top of active cell) 

    set newPic to make new picture at beginning of worksheet 1 of workbook 1 with properties {file name:(imageFile as text), height:imageHeight, width:imageWidth, top:theTop, left position:theLeft, placement:placement move} 


    set thisStep to thisStep + 1 
end repeat 
end tell 

Я бегу Microsoft Excel 2011 на El Capitan

Любая помощь здесь будет весьма признателен!

Спасибо!

+0

Итак, я только что разобрался в обходном пути для этого ... Перед вставкой изображений в мое excel я установил сценарий яблока, чтобы запустить действие Photoshop, которое открывает изображение, изменяет его размеры а затем добавляет равномерное дополнение к сторонам изображений. Таким образом, все jpegs, вставленные в excel, имеют один и тот же размер. Просто некоторые из них имеют пустое пространство по сторонам, а некоторые не влияют на данные Excel, поэтому нам хорошо идти! Мне все равно было бы интересно узнать это чисто с помощью Applescript, хотя, если кто-нибудь из вас знает, как это сделать! –

ответ

0

У меня нет изображения, чтобы заставить соотношение сторон. Флажок в пользовательском интерфейсе заключается в блокировке рациона, когда пользователь перемещает или изменяет размер изображения.

Решение состоит в том, чтобы получить размеры изображения и применить соотношение (ширина/высота) к определенной высоте изображения (= 100). Размеры предоставляются с помощью инструкций «Image Events». Затем вы можете использовать новую ширину как свойство «ширина» в «Создать новую картинку».

set imageFolder to "Macintosh HD:Users:adlife:Desktop:Temporary_Image_Hold - Copyright Filings"as alias 

tell application "Finder" to set imageList to files of folder imageFolder 

tell application "Microsoft Excel" 
set imageHeight to 100 
set imageWidth to 100 -- just a default value, not really needed 
set imageCount to count of imageList 
set theRange to active cell of worksheet 1 of workbook 1 
set thisStep to 0 
set theLeft to left position of active cell 

repeat with imageFile in imageList 

    set theTop to (top of active cell) 
    tell application "Image Events" -- open the image and get dimensions 
     set theFile to imageFile as alias 
     set myImage to open theFile -- don't worry, it will not open the fiel for user, only for the script ! 
     set {W, H} to dimensions of myImage 
     set imageWidth to imageHeight * W/H -- set width using the proportion of image = W/H 
    end tell 
    set newPic to make new picture at beginning of worksheet 1 of workbook 1 with properties {file name:(imageFile as text), height:imageHeight, width:imageWidth, top:theTop, left position:theLeft, placement:placement move} 

    set thisStep to thisStep + 1 
end repeat --next image to place 
end tell 

Я проверил, что скрипт (конечно с моей папке изображений!), И он работает с Эль Capitain и Excel 2011.

Как вы можете видеть, я также изменил первые строки кода :

Чтобы установить imageFolder, вам не нужно делать это в блоке «Finder». Однако он должен быть установлен как «псевдоним».

Чтобы получить все файлы, вы можете указать «Finder» в одной строке без блока tell/end tell. (более простой)

Смежные вопросы