我试图操纵Google幻灯片中的表格,但似乎有记录的操作会在AppScript中引发错误。
https://developers.google.com/apps-script/reference/slides/table
注释掉的行会引发以下错误:
不支持更新此页面元素类型的大小。
var table = (slides[page])
.insertTable(rows, columns)
.setTop (0)
.setLeft(0)
//.setWidth(presentation.getPageWidth());
//.setHeight(presentation.getPageHeight());
这个答案怎么样?我也确认了你的情况。我认为这可能是一个错误。因为使用Slides API时,可以创建调整宽度和高度的表。因此,在当前的解决方法中,当创建表时需要调整表的大小时,我使用Slides API创建表。示例脚本如下。
要在运行脚本之前使用示例脚本,请在Advanced Google Services和API控制台中启用Slides API,如下所示。
使用Slides API修改脚本时,它如下所示。
var presentation = SlidesApp.getActivePresentation();
var slides = presentation.getSlides();
var resource = {"requests":[{"createTable": {
"rows": 2,
"columns": 3,
"elementProperties": {
"size": {
"width": {"unit": "PT", "magnitude": presentation.getPageWidth()},
"height": {"unit": "PT", "magnitude": presentation.getPageHeight()},
},
"pageObjectId": slides[0].getObjectId()},
}
}]};
Slides.Presentations.batchUpdate(resource, presentation.getId());
如果要修改现有表的大小,可以使用以下脚本。
var presentation = SlidesApp.getActivePresentation();
var slides = presentation.getSlides();
var table = slides[0].getTables()[0];
var tableObjectId = table.getObjectId();
var resource = {"requests": [
{"updateTableColumnProperties": {
"objectId": tableObjectId,
"tableColumnProperties": {"columnWidth": {"unit": "PT", "magnitude": presentation.getPageWidth() / table.getNumColumns()}}, "fields": "*"}
},
{"updateTableRowProperties": {
"objectId": tableObjectId,
"tableRowProperties": {"minRowHeight":{"unit": "PT", "magnitude": presentation.getPageHeight() / table.getNumRows()}},"fields":"*"}
}
]};
Slides.Presentations.batchUpdate(resource, presentation.getId());
如果这不是你想要的解决方法,我道歉。