【发布时间】:2018-03-13 18:30:02
【问题描述】:
在 Google 表格中,我有一个使用 html 的侧边栏,其表单在提交时运行 processForm(this)。表单是根据工作表中的标题创建的,这就是我使用标题从表单中检索值的原因。在我尝试使用 setValues() 之前,代码似乎工作正常。没有错误,但在那条线上似乎没有发生任何事情。请让我知道我可能做错了什么。谢谢。
function processForm(formObject) {
var headers = getHeaders();
var newRow = [];
for (var i = 0; i < headers.length; i++) {
newRow.push(formObject["" + headers[i]]); // TODO: convert objects to appropriate formats
}
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(parseInt(formObject.row)+1, 1, 1, headers.length)
Logger.log(JSON.stringify(newRow)); // example output: ["John","Smith","male","6615554109","","example_email@yahoo.com"]
range.setValues(newRow); // values not getting set
}
【问题讨论】:
-
只是为了确定:您显示的示例值是您在记录器中获得的值? object.row 的价值是什么?
-
是的,这就是记录器中显示的内容。 formObject.row 是我们要放置值的行号。在我测试的示例中,值为 2,这意味着这些值应放在第 3 行。
-
嗯,这应该可以...不知道为什么现在不行,抱歉;)
-
如果我正确读取了您的 json 值,它看起来就像一个简单的数组。它应该是一个二维数组,两对括号。尝试 setValues([newrow])。
-
成功了,谢谢!
标签: arrays forms google-apps-script range setvalue