【问题标题】:Change chart properties in Google Slides API在 Google Slides API 中更改图表属性
【发布时间】:2018-05-24 04:26:26
【问题描述】:

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

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

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

任何帮助表示赞赏。

【问题讨论】:

  • 你检查过这个documentation关于自定义谷歌图表的信息吗?您可以使用 Google Chart Tools 的默认设置 - 所有自定义都是可选的,基本设置已准备好启动。但是,如果您的网页采用与提供的默认值不一致的样式,则可以轻松自定义图表。您还可以查看此related SO thread 以使用 Apps 脚本自定义 Google 图表。

标签: google-apps-script google-slides-api


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我已经完成了以下操作,它删除并重新创建了幻灯片文件中的所有图表;

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多