使用Google Slides Apps脚本设置表格的宽度和高度

时间:2019-05-07 01:32:07

标签: google-apps-script google-slides

我正在使用Google Apps脚本来操作幻灯片文件。我想在幻灯片上创建表格,并设置行/列,特定单元格或表格整体的高度/宽度。除了this page似乎不太有前途之外,文档对此没有任何说明。

任何人都知道解决此问题的方法,还是我必须求助于Slides API?

1 个答案:

答案 0 :(得分:1)

  • 您要使用Google Apps脚本修改Google幻灯片上表格的宽度和高度。
  • 您要修改特定单元格的宽度和高度。

我能像上面那样理解。

创建新表格时,可以使用幻灯片服务设置表格的高度和宽度。但是在当前阶段,尚无法使用Slides Service修改已创建表格的高度和宽度以及特定单元格。我认为这可能会在将来的更新中实现。

作为当前的解决方法,使用Slides API可以实现这一目的。

示例脚本1:

在此示例脚本中,使用了幻灯片服务。在幻灯片的第一页上,分别以宽度和高度分别为300点和100点创建新表格。

var slides = SlidesApp.getActivePresentation();
var slide = slides.getSlides()[0];
var table = slide.insertTable(3, 3, 0, 0, 300, 100);

示例脚本2:

在此示例脚本中,使用了Slides API。将第一页上表格“ B2”的单元格的宽度和高度分别修改为300点和100点。

var slides = SlidesApp.getActivePresentation();
var slide = slides.getSlides()[0];
var objectId = slide.getTables()[0].getObjectId();
SlidesApp.getActivePresentation().saveAndClose();
var resource = {requests: [
  {updateTableColumnProperties: {tableColumnProperties: 
    {columnWidth: {magnitude: 300, unit: "PT"}},
    columnIndices: [1],
    objectId: objectId,
    fields: "columnWidth"
  }},
  {updateTableRowProperties: {tableRowProperties: 
    {minRowHeight: {magnitude: 100, unit: "PT"}},
    rowIndices: [1],
    objectId: objectId,
    fields: "minRowHeight"
  }}
]};
Slides.Presentations.batchUpdate(resource, slides.getId());

示例脚本3:

在此示例脚本中,仅使用Slides API,可以获得“示例脚本1”和“示例脚本2”的结果。

var slides = SlidesApp.getActivePresentation();
var slide = slides.getSlides()[0];
var objectId = "sampleTable" + (new Date().getTime());
var resource = {requests: [
  {createTable: {
    rows: 3,
    columns: 3,
    elementProperties: {pageObjectId: slide.getObjectId(), size: {width: {magnitude: 300, unit: "PT"}, height: {magnitude: 100, unit: "PT"}}},
    objectId: objectId
  }},
  {updateTableColumnProperties: {
    tableColumnProperties: {columnWidth: {magnitude: 300, unit: "PT"}},
    columnIndices: [1],
    objectId: objectId,
    fields: "columnWidth"
  }},
  {updateTableRowProperties: {
    tableRowProperties: {minRowHeight: {magnitude: 100, unit: "PT"}},
    rowIndices: [1],
    objectId: objectId,
    fields: "minRowHeight"
  }}
]};
Slides.Presentations.batchUpdate(resource, slides.getId());

注意:

  • 使用幻灯片API时,请在Advanced Google Services上启用它。
    • 从2019年4月8日开始,当创建新脚本项目(独立脚本类型和容器绑定脚本类型)并在Advanced Google Services启用了API时,必须能够使用这些API。因为保存脚本项目时会在默认GCP项目中自动启用API。

参考文献: