有没有一种方法(或解决方法)可以使用应用程序脚本将 Google 表格中的表格添加到 Google 幻灯片演示文稿?
Is there a way (or workaround) to add tables from Google Sheets to a Google Slides presentation using app script?
我是应用程序脚本和一般编码的新手。
我编写了一个脚本,使用 "on form submit" 触发器在我的驱动器中创建一个新文件夹,复制三 (3) 个模板文件并将它们放入其中:
- 其中两 (2) 个是电子表格,另一个是幻灯片演示文稿。
我在电子表格中有 table 想要嵌入并自动更新到演示文稿中。
看来我只能将电子表格中的图表嵌入到演示文稿中。 这是真的吗?
如果是这样,我可以调用电子表格中的某些单元格并获取它们的值吗?然后,将它们放在预先制作的 table 幻灯片演示文稿中?
我可能遗漏了任何其他解决方法吗?
我的团队每天执行此过程 8-30 次,因此任何使这部分自动化的方法都会节省大量时间!
谢谢!
A Table 从电子表格到幻灯片
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));
}
这是我的 table 数据:
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
我是应用程序脚本和一般编码的新手。
我编写了一个脚本,使用 "on form submit" 触发器在我的驱动器中创建一个新文件夹,复制三 (3) 个模板文件并将它们放入其中:
- 其中两 (2) 个是电子表格,另一个是幻灯片演示文稿。
我在电子表格中有 table 想要嵌入并自动更新到演示文稿中。
看来我只能将电子表格中的图表嵌入到演示文稿中。 这是真的吗?
如果是这样,我可以调用电子表格中的某些单元格并获取它们的值吗?然后,将它们放在预先制作的 table 幻灯片演示文稿中?
我可能遗漏了任何其他解决方法吗?
我的团队每天执行此过程 8-30 次,因此任何使这部分自动化的方法都会节省大量时间!
谢谢!
A Table 从电子表格到幻灯片
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));
}
这是我的 table 数据:
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 |