【问题标题】:Display dynamic form options in google sheets在谷歌表格中显示动态表单选项
【发布时间】:2018-02-22 21:15:16
【问题描述】:

我有一个名为“数据”的 Google 表格,用户可以在其中输入他们自己的产品名称和与之关联的销售编号(意为模板,因此产品名称可能会因用户而异)。我已将数据和产品名称 (PRODUCT_NAMES) 读入一些全局数据对象,因此我可以访问它。我创建了一个名为“Plot Data”的菜单项,该菜单项(现在)进入函数 testFunction()

我想向用户显示一个表单,该表单显示他们所有产品名称的复选框网格项目(可能还有更多未来选项),根据他们检查的那些我创建图表或计算一些值。

我的问题分为两部分: 1)如何创建一个具有动态网格选择的表单,比如一个用户有

PRODUCT_NAMES = {"Shirt", "Pants", "Shoes"}

另一个有

PRODUCT_NAMES = {"Cars", "Trucks", "Suvs", "Trailers", "Boats"}

2) 如何在 google sheet 中显示表单?我现在有:

function testFunction() {
  // Create a new form since the options change
  var form = FormApp.create('Test Form');
  var item = form.addCheckboxItem();
  item.setTitle("This is a Test");
  // TODO: Add dynamic options here
  var formUrl = form.getPublishedUrl();

  var response = UrlFetchApp.fetch(formUrl);
  var formHtml = response.GetContextText();

  var htmlApp = HtmlService
      .createHtmlOutput(formHtml)
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('Sales Data')
      .setWidth(500) 
      .setHeight(450);
  SpreadsheetApp.getUi().showSidebar(htmlApp);
}

但这似乎不起作用,我可能误解了一些东西 问题 2b) 如何访问用户响应。

我正在学习 javascript 和 GAS,所以这对我来说是全新的。我想尝试将用户选项部分保留为 Google 表单,只是从 API 的角度来看它更容易发生什么。

【问题讨论】:

  • 展示一个带有基本 HTML 表单的 Modal 可能会更好。哎呀,错误的链接,已更新: developers.google.com/apps-script/reference/base/… 这将代码保留在脚本本身中。
  • @ChrisW 我正在看那个,但是由于我是 javascript 新手并且对 HTML 一无所知,我无法弄清楚如何添加下拉列表、复选框以及 Google 表单的所有其他不错的功能,这就是为什么(目前)我一直坚持让 Google 表单工作。
  • @userr6768079 好的!这只是一个建议,但如果您打算继续使用 Javascript,您不妨一试。 Javascript 和 HTML 几乎总是一起使用。还有无数关于 HTML 的教程和示例。
  • 您在代码中有以下错误,它的form.addCheckboxItem();(它是小写字母b,即box,而不是Box)。其次,它的item.setTitle()(设置,不设置)

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


【解决方案1】:

根据我的评论,为未来的用户扩展了一点:

最好显示带有基本 HTML 表单的UI Modal Dialog。这将代码保留在脚本本身中。

您想要做的问题是,一旦制作了表格并链接了电子表格,数据仍将转到每个表格的新工作表,而不是您希望它去的地方, 并且然后您必须设置一个onEdit() 触发器以从新工作表中获取值,生成图表,然后删除工作表以及以某种方式删除表单。这是可能的,但可能比简单的模态对话框工作更多。

考虑 HTML 选项,因为网络上有许多简单易学的教程、示例和资源。如果你最终尝试了,我建议Bootstrap 开始!

祝你好运!

【讨论】:

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