是否有某些已记录但不受支持的Google幻灯片AppScript?

时间:2019-03-13 19:28:29

标签: google-apps-script google-slides

我正在尝试操作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());

1 个答案:

答案 0 :(得分:1)

这个答案怎么样?我也已与您确认相同的情况。我认为这可能是一个错误。因为当使用Slides API时,可以创建调整宽度和高度的表。因此,在当前变通方法中,当创建表时需要调整表的大小时,我使用Slides API创建表。示例脚本如下。

要使用示例脚本,请在运行脚本之前先按以下步骤在高级Google服务和API控制台上启用Slides API。

在高级Google服务中启用Slides API v1

  • 在脚本编辑器上
    • 资源->高级Google服务
    • 打开Goog​​le Slides API v1

在API控制台上启用幻灯片API

  • 在脚本编辑器上
    • 资源-> Cloud Platform项目
    • View API控制台
    • 在“入门”中,单击“探索并启用API”。
    • 在左侧,单击库。
    • 在“搜索API和服务”中,输入“幻灯片”。然后点击“ Google Slides API”。
    • 单击“启用”按钮。
    • 如果已启用API,请不要关闭。

示例脚本1:

使用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());

示例脚本2:

如果要修改现有表的大小,可以使用以下脚本。

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());

参考文献:

如果这不是您想要的解决方法,我深表歉意。