Добавление сегодняшней даты в слайд презентации - добавлено, но не может быть обновлено - PullRequest
1 голос
/ 18 апреля 2019

В Google Slides я могу добавить сегодняшнюю дату к своему первому слайду, используя этот скрипт, однако при следующем запуске он добавляет другое текстовое поле с датой поверх другой даты, видя обе даты поверх каждойдругой, делает беспорядок.Я не могу найти способ удалить дату перед записью новой или перезаписать ее.

код для записи даты:

function myFunction() {
 var date = new Date();
 var months = ["January", "February", "March", "April", "May", "June", 
 "July", "August", "September", "October", "November", "December"]
 var slide = SlidesApp.getActivePresentation().getSlides()[0];
 var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 300, 200, 300, 60);
 var textRange = shape.getText();
 textRange.setText(months[date.getMonth()]+' '+date.getDate()+', '+date.getFullYear());

Спасибо,

1 Ответ

1 голос
/ 19 апреля 2019
  • Вы хотите поместить текстовое поле с датой на первую страницу слайдов.
  • Вы хотите перезаписать текстовое поле для ввода даты, когда текстовое поле существует.

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

  1. Извлечение всех фигур со 1-й страницы слайдов.
  2. Извлечение текстового поля для ввода даты по заголовку текстового поля.
  3. Если текстовое поле с заголовком существует, текст текстового поля перезаписывается по дате, которая является текстом.
  4. Если текстовое поле с заголовком не существует, новое текстовое поле вставляетсяпоставив дату.

Модифицированный скрипт:

function myFunction() {
  var title = "sampleTitle"; // Please set this.

  var date = new Date();
  var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  var slide = SlidesApp.getActivePresentation().getSlides()[0];
  var date = months[date.getMonth()]+' '+date.getDate()+', '+date.getFullYear();
  var shapes = slide.getShapes();
  var s = shapes.filter(function(e) {return e.getTitle() == title});
  if (s.length > 0) {
    s[0].getText().setText(date);
  } else {
    var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 300, 200, 300, 60).setTitle(title);
    var textRange = shape.getText();
    textRange.setText(date);
  }
}

Ссылки:

...