Выделение — это содержимое, находящееся в фокусе на открытой странице презентации, например, выделенный фрагмент текста или таблица. В этом руководстве описано, как получить и установить выделение в активной презентации с помощью Apps Script.
Скрипт может получить доступ только к выделенной области пользователя, запускающего скрипт.
Выделенный фрагмент представляет собой снимок того, каким он был на момент запуска скрипта. Если пользователь щелкнет мышью, и выделение изменится во время выполнения скрипта, эти изменения не будут отражены.
Выбор и тип выбора
Считывайте выделенный фрагмент текста с помощью класса Selection . Этот класс содержит различные методы для получения выделенных объектов в зависимости от типа выделенного объекта (объектов).
Перечисление SelectionType представляет конкретный тип выбранных объектов. Например, если пользователь выделил текст в фигуре, тип выделения будет TEXT . В этом случае вы можете получить выделенный диапазон текста, используя метод selection.getTextRange() .
Вы также можете получить объект, содержащий выделение. Например, вы можете получить фигуру, содержащую выделенный текст, используя selection.getPageElementRange().getPageElements()[0] . Аналогично, страница, содержащая окружающую фигуру, является текущей активной страницей; чтобы получить эту страницу, используйте selection.getCurrentPage() .
Чтение отрывка
Для чтения выделенного фрагмента используйте метод Presentation.getSelection() , как показано в следующем примере:
Прочитайте текущую страницу
Чтобы получить текущую страницу , которую просматривает пользователь, используйте методы getSelection() и getCurrentPage() следующим образом:
Обратите внимание, что текущая страница может быть любого из следующих типов:
На текущей странице может быть выбран один или несколько объектов, а параметр SelectionType определяет тип выделения.
Прочитайте выбранный фрагмент текста в зависимости от типа выделения.
В следующем примере показано, как можно использовать тип выделения для чтения текущего выделения соответствующим образом.
Прочитайте фрагменты текста.
Считывайте выделенный текст с помощью метода Selection.getTextRange() . Существует два типа выделения текста:
- Выбор диапазона : Если фигура содержит текст "Hello", и выбран текст "He", возвращаемый диапазон будет иметь начальный индекс = 0 и конечный индекс = 2.
- Выбор курсора : Если фигура содержит текст "Hello", и курсор находится после "H" ("H|ello"), возвращается пустой диапазон с startIndex=1 и endIndex=1.
Изменение выделения
Скрипт может изменять выбор пользователя. Любые изменения выбора, внесенные скриптом в представление, отражаются в последующих операциях выбора на протяжении всего выполнения скрипта.
Изменения в выделении отображаются в браузере пользователя только после завершения выполнения скрипта или при вызове Presentation.saveAndClose() .
Выбор текущей страницы
В активной презентации можно выбрать страницу в качестве текущей, вызвав метод ` selectAsCurrentPage()` . Этот метод удаляет все предыдущие элементы страницы, выделенные страницы или текст. Таким образом, использование этого метода на текущей странице позволяет отменить выделение любых текущих элементов на странице. Например:
Выберите элемент страницы
Для выбора элемента страницы используйте метод PageElement.select() . При этом также отменяется выбор всех ранее выбранных элементов страницы.
Методы select() и select(true) эквивалентны.
Например:
Выберите несколько элементов страницы
Для добавления дополнительных элементов страницы к выделенной области используйте метод PageElement.select(false) . Все элементы страницы должны находиться на текущей странице.
Преобразовать выделенный фрагмент
Изменения, вносимые вашим скриптом, могут трансформировать текущее выделение, так что в результате редактирования изменится и то, что выделено. Например:
- Предположим, вы выбрали две фигуры: A и B.
- Далее ваш скрипт удаляет фигуру А.
- В результате выделение преобразуется относительно редактирования таким образом, что выделяется только фигура B.
В следующем примере показано, как можно изменить выделенную область, манипулируя выбранными элементами страницы.
Выделите текст
Текст, содержащийся в фигуре или ячейке таблицы, можно выделить с помощью метода TextRange.select() . Если текст находится в фигуре, то выделяется и эта фигура. Если текст находится в ячейке таблицы, то выделяются как эта ячейка таблицы, так и окружающая её таблица.
Это также устанавливает родительскую страницу в качестве текущей страницы.
Выбор диапазона в форме
В следующем примере показано, как выделить диапазон текста, содержащегося в фигуре.
Выбор курсора в фигуре
В следующем примере показано, как выделить текст внутри фигуры с помощью курсора.
Выбор диапазона значений в ячейке таблицы
В следующем примере показано, как выделить диапазон текста в ячейке таблицы.
Выбор курсора в ячейке таблицы
В следующем примере показано, как выделить текст внутри ячейки таблицы с помощью курсора.
Преобразование выделенного фрагмента текста с помощью редактирования текста.
В следующем примере показано, как можно изменить выделенный фрагмент, отредактировав его.
Снять выделение
Явных методов для отмены выделения текста или элементов страницы не существует. Однако этого можно добиться с помощью методов Page.selectAsCurrentPage() или pageElement.select() .
Выберите текущую страницу
В следующем примере показано, как отменить выделение любых текущих элементов на странице, установив эту страницу в качестве текущей.
Выберите элемент страницы
В следующем примере показано, как отменить выделение элементов на странице, выбрав один элемент страницы и удалив таким образом все остальные элементы из выделения.