Дублируйте лист с цифрами

Я пытаюсь продублировать лист в файле чисел (мне каждый день нужен новый лист на основе шаблона), используя AppleScript. Я действительно новичок в AppleScript, но я уже использую его для заполнения некоторых ячеек результатами, которые я получаю из скрипта Python, который я запускаю, но этот бит все еще выполняется вручную... =/

tell application "Numbers"
tell document 1
    set thisSh to make new sheet with properties {name:"May14"}
    duplicate sheet "Template" to sheet "May14"
end tell
end tell

Код выше возвращает ошибку: error "Numbers got an error: Sheets can not be copied." number -1717 и, следовательно, мой вопрос: есть ли способ дублировать номерной лист?

В настоящее время я использую iWork '14 с номерами 3.2.

Спасибо!

PS я тоже пробовал duplicate every table of sheet "Template" to sheet "May14" с похожей ошибкой: Tables can not be copied.

1 ответ

Решение

У вас есть два варианта. Вы можете создать таблицу на новом листе программно или выбрать и скопировать таблицу (таблицы) с первого листа и скопировать ее (их) на новый лист. Вот код для второго варианта. Возможно, вам не пришлось настраивать этот экранный скриншот, но вы должны получить все, что вам нужно. Если у вас возникнут сложности, пожалуйста, опубликуйте скриншот и описание вашего шаблона.Обновлен, чтобы учесть сумасшедшее количество таблиц в листе. Обновлен еще раз, чтобы продемонстрировать, как изменить активный лист.

tell application "Numbers"
    activate
    tell document 1
        set tempSheet to first sheet whose name is "My Template"
        set active sheet to tempSheet
        tell application "System Events"
            -- deselect all
            keystroke "a" using {command down, shift down}
            delay 0.1
            -- select all containers (tables, text items, etc.)
            keystroke "a" using {command down}
            delay 0.1
            -- copy the containers
            keystroke "c" using {command down}
        end tell
        delay 0.1
        set dateString to (month of (current date)) & (day of (current date)) as string
        set thisSheet to make new sheet with properties {name:dateString}
        tell thisSheet
            delete every table
            tell application "System Events"
                keystroke "v" using {command down}
            end tell
        end tell
    end tell
end tell
Другие вопросы по тегам