Есть ли способ (или обходной путь) для добавления таблиц из Google Sheets в презентацию Google Slides с помощью скрипта приложения? - PullRequest
0 голосов
/ 17 февраля 2020

Я новичок в скрипте приложения и кодировании в целом.

Я написал скрипт, который использует триггер «при отправке формы», чтобы создать новую папку на моем диске, скопировать три (3) файла шаблона и поместить их туда:

  • Две (2) из ​​них являются электронными таблицами, а другая представляет собой слайд-презентацию.

У меня есть таблицы в электронных таблицах, которые я хочу встроить, и они автоматически обновляются в презентации.

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

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

Какие-либо другие обходные пути, которые я могу пропустить?

Моя группа выполняет этот процесс в любом месте от 8 до 30 раз в день. так что любой способ автоматизировать эту часть сэкономил бы много времени!

Спасибо!

1 Ответ

0 голосов
/ 18 февраля 2020

Таблица из электронной таблицы в слайд

function putTablesIntoSlides() {
  var pr=SlidesApp.openById('Presentation Id');
  var slide1_ObjectId=pr.getSlides()[1].getObjectId();//I was adding the table to slide[1];
  Logger.log(slide1_ObjectId);
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet10');
  var rg=sh.getDataRange();
  var v=rg.getValues();
  //Create a table the size comes from Spreadsheet Data
  var request1={"createTable": {"elementProperties":{"pageObjectId": slide1_ObjectId},"rows": v.length,"columns": v[0].length}};
  var resp1=Slides.Presentations.batchUpdate({requests:request1}, pr.getId());
  //Setting up the data for adding text to the above table.
  var request2=[];
  for(var i=0;i<v.length;i++) {
    for(var j=0;j<v[i].length;j++) {
      request2.push({"insertText":{"objectId":resp1.replies[0].createTable.objectId,"cellLocation": {"rowIndex":i,"columnIndex":j},"text": v[i][j].toString()}});
    }
  }
  //Add test to all of the table cells
  var resp2=Slides.Presentations.batchUpdate({requests:request2}, pr.getId());
  Logger.log(JSON.stringify(resp1));   
}

Это мои данные таблицы:

HDR1|HDR6|HDR2|HDR5|HDR4|HDR7|HDR8|HDR3
5|7|2|6|4|3|1|0
7|4|8|2|3|1|7|8
5|7|5|0|0|9|1|2
2|4|9|9|7|3|7|2
1|0|3|3|5|3|9|7
3|7|8|3|2|4|1|8
5|8|6|3|1|1|8|4
3|1|7|7|1|5|7|5
9|6|3|6|8|6|9|8
5|4|9|6|2|3|3|4

API Google Slides

SlidesApp

...