【问题标题】:How to auto refresh Google Sheets graphs inside an auto generated Google Doc, every time a form is submitted每次提交表单时,如何在自动生成的 Google Doc 中自动刷新 Google Sheets 图表
【发布时间】:2021-07-14 22:37:51
【问题描述】:

我创建了一个 Google 表单和一个电子表格,用于分析答案并评估分数,然后创建可视化见解的雷达图。

然后将这些图表复制到启用链接的 Google Doc 模板中,然后转换为 PDF 并通过电子邮件发送到表单中定义的地址。

我在 Google 上找到了对用于自动更新幻灯片中的图表的代码的引用,但我无法使其在提交表单响应电子表格的代码中工作。我为此任务使用了 Google 脚本。

我需要能够自动更新,因为表单中的提交按钮是与电子表格、代码和模板文档的唯一交互。

我找到的用于 Google 幻灯片的代码

var requests = [{
  refreshSheetsChart: {
    objectId: presentationChartId
  }
}];

// Execute the request.
var batchUpdateResponse = Slides.Presentations.batchUpdate({
  requests: requests
}, presentationId);
console.log('Refreshed a linked Sheets chart with ID: %s', presentationChartId);

【问题讨论】:

  • 你从什么上下文中调用这个脚本?
  • 您必须填写一个 google 表格,然后当您登顶时,包含答案的电子表格会更新分析并重新绘制图表。电子表格中的应用程序脚本复制模板文档并在其中完成一些信息。本文档具有相同的雷达图,需要使用最新记录进行更新。
  • 你能提供一个带有测试图表的样本表吗?你还说它不起作用 - 它目前在做什么?

标签: google-apps-script google-sheets google-docs google-forms


【解决方案1】:
  1. 打开 Google 表单的脚本编辑器
  2. 粘贴以下代码并保存(填写presentationIdpresentationChartId
  3. 启用 Slides API(资源 -> 高级 Google 服务 -> Google Slides API -> 开启)
  4. 创建触发器(选择事件类型:On form submit
function onSubmit() {
  const presentationId = '';
  const presentationChartId = '';
  var requests = [{
    refreshSheetsChart: {
      objectId: presentationChartId
    }
  }];
  
  // Execute the request.
  var batchUpdateResponse = Slides.Presentations.batchUpdate({
    requests: requests
  }, presentationId);
  console.log('Refreshed a linked Sheets chart with ID: %s', presentationChartId);
}

【讨论】:

    猜你喜欢
    • 2019-06-04
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    相关资源
    最近更新 更多