Google apps script 在同一批更新过程中,使用Google Slides API是否可以在所有或任何剩余请求中使用来自一个请求的响应

Google apps script 在同一批更新过程中,使用Google Slides API是否可以在所有或任何剩余请求中使用来自一个请求的响应,google-apps-script,Google Apps Script,我创建了这段代码,它从电子表格创建了一个谷歌幻灯片表。但是因为我必须有tableObjectId,所以我在两次批更新中完成了它。因此,我想知道是否有可能将创建表的第一个请求中的resp1.repress[0].createTable.objectId放入在同一批更新中加载单元格的请求中 守则: function putTablesIntoSlides() { var pr=SlidesApp.openById('Presentation Id'); var slide1_ObjectId

我创建了这段代码,它从电子表格创建了一个谷歌幻灯片表。但是因为我必须有tableObjectId,所以我在两次批更新中完成了它。因此,我想知道是否有可能将创建表的第一个请求中的resp1.repress[0].createTable.objectId放入在同一批更新中加载单元格的请求中

守则:

function putTablesIntoSlides() {
  var pr=SlidesApp.openById('Presentation Id');
  var slide1_ObjectId=pr.getSlides()[1].getObjectId();
  Logger.log(slide1_ObjectId);
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet10');
  var rg=sh.getDataRange();
  var v=rg.getValues();

  //Create Table
  var request1={"createTable": {"elementProperties":{"pageObjectId": slide1_ObjectId},"rows": v.length,"columns": v[0].length}};
  var resp1=Slides.Presentations.batchUpdate({requests:request1}, pr.getId());

  //Preparing the request for Adding Text into cells
  var request2=[];
  for(var i=0;i<v.length;i++) {
    for(var j=0;j<v[i].length;j++) {

      //Is there a way to get the replies[0].createTable.objectId from the create table request in the same batch update.
      request2.push({"insertText":{"objectId":resp1.replies[0].createTable.objectId,"cellLocation": {"rowIndex":i,"columnIndex":j},"text": v[i][j].toString()}});
    }
  }

  //Adding text
  var resp2=Slides.Presentations.batchUpdate({requests:request2}, pr.getId());   
}
函数putTablesIntoSlides(){
var pr=SlidesApp.openById('Presentation Id');
var slide1_ObjectId=pr.getSlides()[1].getObjectId();
Logger.log(slide1\u ObjectId);
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet10');
var rg=sh.getDataRange();
var v=rg.getValues();
//创建表
var request1={“createTable”:{“elementProperties”:{“pageObjectId”:slide1_ObjectId},“rows”:v.length,“columns”:v[0]。length};
var resp1=Slides.Presentations.batchUpdate({requests:request1},pr.getId());
//准备向单元格中添加文本的请求
var request2=[];
对于(var i=0;i
  • 您希望通过一个API调用运行以下请求的Slides API的batchUpdate方法。
  • 创建新表
  • 输入值
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,那么这个答案呢?请把它看作是几种可能的答案之一

修改点:
  • 在这种情况下,创建新表时,可以在请求正文中设置已创建表的对象ID
  • 使用对象ID,可以将值放入表中
  • 如下所示

    对象ID: 用户为上面标识的占位符提供的对象ID,该占位符将创建到幻灯片上。 如果指定ID,则该ID在演示文稿中的所有页面和页面元素中必须是唯一的。ID必须以字母数字字符或下划线开头(匹配正则表达式[a-zA-Z0-9\);其余字符可能包括这些字符以及连字符或冒号(匹配正则表达式[a-zA-Z0-9\:])。ID的长度不得小于5或大于50。 如果不指定ID,将生成唯一的ID

当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 发件人:
//创建表
var request1={“createTable”:{“elementProperties”:{“pageObjectId”:slide1_ObjectId},“rows”:v.length,“columns”:v[0]。length};
var resp1=Slides.Presentations.batchUpdate({requests:request1},pr.getId());
//准备向单元格中添加文本的请求
var request2=[];

对于(VarI=0;iThanks)。现在我想这可能就是他们这样做的原因。
//Create Table
var request1={"createTable": {"elementProperties":{"pageObjectId": slide1_ObjectId},"rows": v.length,"columns": v[0].length}};
var resp1=Slides.Presentations.batchUpdate({requests:request1}, pr.getId());

//Preparing the request for Adding Text into cells
var request2=[];
for(var i=0;i<v.length;i++) {
  for(var j=0;j<v[i].length;j++) {

    //Is there a way to get the replies[0].createTable.objectId from the create table request in the same batch update.
    request2.push({"insertText":{"objectId":resp1.replies[0].createTable.objectId,"cellLocation": {"rowIndex":i,"columnIndex":j},"text": v[i][j].toString()}});
  }
}
//Adding text
var resp2=Slides.Presentations.batchUpdate({requests:request2}, pr.getId());
var tableObjectId = "sampleId1";  // Here, the object ID of table is set.

//Create Table
var requests = [{"createTable": {"objectId": tableObjectId, "elementProperties":{"pageObjectId": slide1_ObjectId},"rows": v.length,"columns": v[0].length}}];

//Preparing the request for Adding Text into cells
for(var i=0;i<v.length;i++) {
  for(var j=0;j<v[i].length;j++) {

    //Is there a way to get the replies[0].createTable.objectId from the create table request in the same batch update.
    requests.push({"insertText":{"objectId":tableObjectId,"cellLocation": {"rowIndex":i,"columnIndex":j},"text": v[i][j].toString()}});
  }
}
//Adding text
var resp = Slides.Presentations.batchUpdate({requests:requests}, pr.getId());