我正在尝试编写一个小脚本,以使我的同事和我的生活更轻松。我正在尝试根据输入自定义表单的信息将行附加到电子表格。下面发布的代码只是应该附加谷歌电子表格的 doPost block 。
function doPost(form) {
var PN = form.PartNumber;
var REV = form.Revision;
var DATE = form.RevisionDate;
var DESC = form.Description;
var NOTE = form.PartNotes;
var URL = form.myFile.getURL();
var ss = SpreadsheetApp.openById("ID HERE"); // removed ID for sake of safety (let me be paranoid)
var sheet = ss.getSheetName('Uploads');
sheet.appendRow([PN,REV,DATE,DESC,NOTE,URL]);
}
我不确定为什么它没有写入电子表格,但它没有给我带来任何错误。如果您能提供有关问题所在的任何见解,我将不胜感激;网上有很多指南,但大多数似乎都是基于已弃用的函数/代码/等。
感谢您的宝贵时间。
最佳答案
不要使用 doPost,而是设置“在表单提交时”触发器。
您需要获取namedValues才能提取特定值并获取第一个输出。
此外,它应该是“getSheetByName('Uploads')”。
正如前面的答案所指出的,目前尚不清楚您想通过“form.myFile.getURL();”实现什么目的如果您想获取表单 url,您不妨将其创建为字符串,因为它始终保持不变。
这是您的代码的工作示例:
function doPost(form) {
var formResponses = form.namedValues;
var PN = formResponses.PartNumber[0];
var REV = formResponses.Revision[0];
var DATE = formResponses.RevisionDate[0];
var DESC = formResponses.Description[0];
var NOTE = formResponses.PartNotes[0];
//var URL = form.myFile.getURL(); //Not sure what you are tyring to get here as form URL will always be the same.
var URL = "Your form's url"; //You can put the form url in here so it will be pushed in to every row.
var ss = SpreadsheetApp.openById("ID HERE"); // removed ID for sake of safety (let me be paranoid)
var sheet = ss.getSheetByName('Uploads');
sheet.appendRow([PN,REV,DATE,DESC,NOTE,URL]);
}
关于javascript - Google 脚本不附加电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30124803/