google-apps-script - 表单向工作表提交数据后,向工作表中的事件添加数字
问题描述
我正在尝试创建一个脚本,以在提交表单时将“事件”编号添加到事件编号列(第 1 列),并通过检测新数据将数据添加到链接的 Google 工作表(工作表名称“IIR”)中第 4 列。第一行包含工作表标题(由表格中的问题开发)。我从其他来源窃取了一个具有相同意图的脚本,该脚本运行没有错误,但我没有得到想要的结果(我是 Newbee)。
//CORE VARIABLES
// The column you want to check if something is entered.
enter code here var COLUMNTOCHECK = 4; // Where you want the date time stamp offset from the input location. [row, column]
var ADDNUMBER = [1,1]; // Sheet you are working on
var SHEETNAME = "IIR"
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("IIR"); //checks that we're on the correct sheet.
if( sheet.getSheetName() == SHEETNAME ) {
var selectedCell = ss.getActiveCell(); //checks the column to ensure it is on the one we want to cause the number to appear.
if( selectedCell.getColumn() == COLUMNTOCHECK) {
var IncidentNumber = selectedCell.offset(ADDNUMBER[1],ADDNUMBER[1]);
for (r=1; r<999; r++) {
ss.getRange(r,1).setValue(r);
}
}
}}
解决方案
将事件编号附加到链接工作表中的时间戳
此函数将添加一个事件编号,该编号由时间戳组成,方法是使用两位数的年份、两位数的月份、两位数的日期、一个破折号和连续递增的数字。它还保留时间戳并将事件编号添加到单元格的底部。
function formSubmit(e) {
if(e.values && e.values[1]) {
Logger.log(JSON.stringify(e));
var sh=e.range.getSheet();
sh.getRange(e.range.rowStart,1).setValue(getIncidentNumber(e));
}
}
function getIncidentNumber(e) {
var ps=PropertiesService.getScriptProperties();
var ts=e.values[0];
var key=Utilities.formatString('%s%s%s',ts.slice(8,10),ts.slice(0,2),ts.slice(3,5));
if(ps.keys && ps.getKeys().indexOf(key)==-1) {
ps.setProperty(key,1);
return key + "-" + 1;
}else{
var value=ps.getProperty(key);
ps.setProperty(key, Number(value) + 1)
var rv = ts + '\n' + key + "-" + Number(value).toFixed();
return rv;
}
}
推荐阅读
- drupal - 如何用 TWIG 提取单词的第一个字母?
- java - 我如何知道一个数字是否包含在java中的另一个数字中?
- oracle - Oracle - 我应该如何通过使用 EAV(实体属性值)设计将字段值存储在表中的 Oracle 表查询加速页面加载?
- python - 在python中计算百分比错误时出错
- node.js - Auth0登录,添加本地存储管理用户访问
- python-3.x - 这段代码中有一个双新行,如何删除它
- r - 对于每个组,应用一个函数并在 R 中返回一个不同维度的对象
- c# - 扩展我的 ASP.NET Core Web API (EF Core) 以调用存储过程
- python - 除了 else 循环,我的 while true 尝试做错了什么
- python - 在 Python 2D 数组中交换两个索引