我有一张名为“数据”的Google表格,用户可以在其中输入自己的产品名称和与之关联的销售号码(意为模板,因此产品名称可能会将用户更改为用户)。我已将数据和产品名称(PRODUCT_NAMES)读入一些全局数据对象,因此我可以访问它。我已经创建了一个名为“Plot Data”的菜单项,它将转到函数(现在)testFunction()
我想向用户显示一个表单,该表单显示所有产品名称的复选框网格项(以及可能更多的未来选项),根据他们检查的内容创建图表或计算某些值。
我的问题是两部分: 1)如何创建一个具有动态网格选择的表单,比如说有一个用户
PRODUCT_NAMES = {"Shirt", "Pants", "Shoes"}
而另一个有
PRODUCT_NAMES = {"Cars", "Trucks", "Suvs", "Trailers", "Boats"}
2)如何在Google表格中显示表单?我现在有:
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的角度来看,这样做会更容易。
答案 0 :(得分:0)
从我的评论中,对未来的用户进行了一些扩展:
最好使用基本HTML表单显示UI Modal Dialog。这使代码保持在脚本本身内。
您要执行的操作的问题是,一旦表单生成并且电子表格已关联,数据仍会转到新表每个表单,而不是您想要的位置, 和然后你必须设置onEdit()
触发器来获取新工作表中的值,生成图表,然后删除工作表,以及某种方式,表单。它可能,但可能比简单的模态对话更多的工作。
考虑HTML选项,因为网上有许多简单易懂的教程,示例和资源。如果你最终尝试了,我建议Bootstrap开始!
祝你好运!