0

我正在基于模板创建一个新的 Google 幻灯片文件,一旦创建,我需要在源工作表发生变化时停止嵌入图表的更新(这是用于基础将定期更改的月度报告)。

我正在为 Google Apps 脚本库使用 Google Slides API(感谢 Wesley Chun 和 Martin Hawksey),并且可以搜索和替换文本。

但是,我在库中没有看到任何允许更改图表属性的内容。我可以创建一个新图表或强制刷新。

任何帮助表示赞赏。

4

2 回答 2

1

没有 API 支持取消链接现有图表以防止用户刷新它。您最好的选择可能是删除图表并在您的最终演示文稿中重新创建它。您应该能够从 or 中获取图表 ID、电子表格 ID 和页面元素转换,presentation.get()presentation.pages.get()使用它重新插入图表以保留位置和内容。

于 2017-01-30T22:00:29.350 回答
0

我已经使用以下内容删除并重新创建了幻灯片文件中的所有图表;

for (var j in SLIDES.presentationsGet(DECK_ID).slides) {
  var slide = SLIDES.presentationsGet(DECK_ID).slides[j];
  for (var i in slide['pageElements']){
    var obj = slide['pageElements'][i];
    if (obj['sheetsChart']) {

      // delete it and recreate as static image
      var reqs = [
        {'deleteObject': {'objectId': obj['objectId']}},
        {'createSheetsChart': {
          'spreadsheetId' : obj["sheetsChart"]["spreadsheetId"],
          'chartId' : obj["sheetsChart"]["chartId"],
          'elementProperties' : {
            'pageObjectId': slide['objectId'],
            'size' : obj["size"],
            'transform' : obj["transform"],
          }
        }
      }
    ];
    SLIDES.presentationsBatchUpdate(DECK_ID, {'requests': reqs})
  }
}
于 2017-01-31T03:00:18.440 回答