如何解决appendRow列的起始位置
我正在尝试将表单提交到Google表格中时尝试添加自动时间戳记,但是问题是我希望时间戳记在行的第一列中,然后再估算其余的数据。 我似乎无法让我的processForm函数从第二列开始,而独自留下第一列。如果我尝试在ws.appendRow部分下放置一个空的formObject,它将覆盖我的onEdit函数,并且不允许显示日期。有什么办法让我从第二列而不是第一列开始追加行?
function doGet(request) {
return HtmlService.createTemplateFromFile('Index')
.evaluate();
}
/* @Include JavaScript and CSS Files */
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename)
.getContent();
}
function onEdit(event)
{
var timezone = "GMT-5";
var timestamp_format = "MM-dd-yyyy"; // Timestamp Format.
var updateColName = "Total Defects";
var timeStampColName = "Date";
var sheet = event.source.getSheetByName('Data'); //Name of the sheet where you want to run this script.
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1,1,sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists,but not in the header row itself!
var cell = sheet.getRange(index,dateCol + 1);
var date = Utilities.formatDate(new Date(),timezone,timestamp_format);
cell.setValue(date);
}
}
/* @Process Form */
function processForm(formObject) {
var url = "LINK TO SPREADSHEET URL";
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Data");
ws.appendRow([
formObject.data_1,formObject.data_2,formObject.data_3
]);
}
'''
解决方法
用于创建时间戳的代码是独立的,应该使用自己的timestamp()
函数。
(注意:“ GMT-5”没有夏时制:这对您来说正确吗?请考虑使用提供的getSpreadsheetTimeZone
。)
提取timestamp()
之后,您可以像这样将其插入到processForm
函数中:
/** @returns {string} */
function timestamp() {
var timezone = "GMT-5"; // consider using getSpreadsheetTimeZone()
var timestamp_format = "MM-dd-yyyy";
return Utilities.formatDate(new Date(),timezone,timestamp_format);
}
/* @Process Form */
function processForm(formObject) {
var url = "LINK TO SPREADSHEET URL";
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Data");
ws.appendRow([
timestamp(),formObject.data_1,formObject.data_2,formObject.data_3,]);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。