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