【发布时间】: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