首页 > 解决方案 > 调整由谷歌电子表格创建的谷歌幻灯片的图表位置

问题描述

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

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

标签: google-apps-scriptgoogle-slides-apigoogle-slides

解决方案


在您的情况下,何时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()用于这个修改后的脚本,请将其添加到 after 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);

推荐阅读