调整由 google 电子表格创建的 google 幻灯片的图表位置

Adjust the chart position of google slide which is created by google spreadsheet

我正在尝试调整 Google Apps 脚本图表在 Google 幻灯片上的位置。首先,在电子表格上创建图表并插入到幻灯片中。我尝试使用 setLeft()alignOnPage() 方法将位置更改为右侧或中心。但是,图像仍然位于幻灯片的左上角。有人可以告诉我将图表放在幻灯片上的正确方法吗?谢谢!

var chart2 = sheet.newChart().setChartType(Charts.ChartType.PIE).addRange(sheet.getRange(range2)).setOption('applyAggregateData',0).setPosition(5, 5, 0, 0).build();
sheet.insertChart(chart2);
shapes = slide.getShapes();
slide.insertSheetsChart(chart2).setLeft(0).alignOnPage(SlidesApp.AlignmentPosition.CENTER).setWidth(300).setHeight(185);

根据您的情况,当使用 alignOnPage() 时,首先,请使用 setWidth()setHeight() 调整图表大小。然后使用alignOnPage(SlidesApp.AlignmentPosition.CENTER)。这样,您可以将调整后的图表放在幻灯片的中央。

alignOnPage() 为 运行 之前调整图表大小时,使用调整大小之前的大小。所以调整后调整图表大小时,你不想要的位置就体现出来了。

修改后的脚本:

从:
slide.insertSheetsChart(chart2)
  .setLeft(0)
  .alignOnPage(SlidesApp.AlignmentPosition.CENTER)
  .setWidth(300)
  .setHeight(185);
到:
slide.insertSheetsChart(chart2)
  .setWidth(300)
  .setHeight(185)
  .alignOnPage(SlidesApp.AlignmentPosition.CENTER);

注:

  • 如果你想为这个修改后的脚本使用setLeft(),请把它添加到alignOnPage()之后。

如果这不是您想要的结果,我很抱歉。

已添加:

关于你的附加问题,下面的示例脚本怎么样?在此示例中,以下流程为 运行.

  1. 设置图表的宽度和高度。
  2. 设置顶部和左侧的位置。

示例脚本:

var s = SlidesApp.getActivePresentation();
var w = 300;
var h = 185;
var ph = s.getPageHeight();
var pw = s.getPageWidth();

slide.insertSheetsChart(chart2)
  .setWidth(w)
  .setHeight(h)
  .setTop(ph - h)
  .setLeft(pw - w);