Добавить гиперссылку в ячейку таблицы в презентации Google Slides

В моем слайд-шоу Google есть таблица. Таблица обновляется каждые 15 минут. У меня есть ячейки в этой таблице, в которые я хочу включить гиперссылки. Я попытался вручную ввести гиперссылку, выделив текст в ячейке и щелкнув правой кнопкой мыши, выбрав «ссылку». Но когда таблица обновляется, гиперссылки удаляются. Я пробовал использовать как setText (), так и insertText () в скрипте, оба стирают ссылки.

Я также рассмотрел возможность автоматического повторного добавления ссылки после завершения обновления, однако в таблицах слайд-шоу нет команды insertLink. Кроме того, поскольку эта таблица на самом деле не является электронной таблицей Google, здесь нет команды setFormula ().

Вот что я сейчас использую для обновления таблицы. Работает, достаточно добавить гиперссылки в текст.

К вашему сведению, ссылки будут на другие файлы на Google Диске, если это имеет значение ...

var slide = SlidesApp.getActivePresentation().getSlides()[slideNo];
var table = slide.getTables();
var cell = table[0].getCell(row,4);
var trafficTime = convertTime(res["routes"][0]["summary"]["travelTimeInSeconds"]);
var trafficDelay = Math.round(res["routes"][0]["summary"]["trafficDelayInSeconds"]/60);  
var displayedTime = trafficTime + " +" + trafficDelay; 

cell.getText().clear();
cell.getText().insertText(0,displayedTime);

person Mark B    schedule 03.12.2019    source источник


Ответы (1)


  • Вы хотите добавить гиперссылку к тексту ячейки в таблице в Google Slides.
  • Вы хотите добиться этого с помощью скрипта Google Apps.

Если я правильно понимаю, как насчет этой модификации? Подумайте об этом как об одном из нескольких возможных ответов.

Пункт модификации:

  • В вашем случае можно использовать TextRange, возвращенный из insertText. Для этого вы можете использовать метод getTextStyle().setLinkUrl(URL).

Измененный скрипт:

При изменении вашего сценария внесите следующие изменения.

From:
cell.getText().insertText(0,displayedTime);
To:
var textRange = cell.getText().insertText(0,displayedTime);
textRange.getTextStyle().setLinkUrl(url);

or

cell.getText().insertText(0,displayedTime).getTextStyle().setLinkUrl(url);
  • В данном случае url - это строковый тип, например https://###sample###/.

Использованная литература:

Если я неправильно понял ваш вопрос и это было не то направление, которое вам нужно, я прошу прощения.

person Tanaike    schedule 03.12.2019
comment
Черт, я везде искал это. Все дело в том, чтобы сначала получить этот текстовый стиль, лол ... Еще раз спасибо, я принял ваш ответ и проголосовал за вас !!! - person Mark B; 04.12.2019
comment
@Mark B Спасибо за ответ. Я рад, что ваша проблема решена. И тебе спасибо. - person Tanaike; 04.12.2019