如何在谷歌脚本中添加if和date



我是代码脚本的初学者。你能帮我做一下功能吗?

我有机器人,他把数据发送到谷歌表单,他发送姓名、电话、日期和通信方式。我需要谷歌表单在C栏中写下我从手机获取数据的日期。我现在才知道日期,但除此之外,我还需要if-else"如果列C不是空的,则发送自上次请求以来的日期";,此外,我想我需要添加方法forEach和方法,以便在收到电话时自动更新数据。为此,我认为需要触发";doGet(e(";来自谷歌文档(电子表格图像(从webhook获取数据这是我的代码:

function getDate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var numbers = ss.getActiveSheet().getRange("B2:B1000")
let dateGoogle = new Date();
var rr = ss.getActiveSheet().getRange("C1:C1000").setValue(dateGoogle);
}

以防万一。如果您能够运行函数getDate(),并且您所需要的只是使其仅为已填充B列中单元格的行填充C列中的单元格,则可以通过以下方式完成:

function getDate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getActiveSheet().getData();
var data = range.getValues();
let dateGoogle = new Date();
data.forEach(x => x[2] = (x[2] == '' && x[1] != '') ? dateGoogle : x[2]);
range.setValues(data);
}

如果你问如何通过doGet()运行函数getData(),我没有答案。

使用doPost((

function doPost(e) {
Logger.log(e.postData.contents);
Logger.log(e.postData.type);
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet1");
let data = JSON.parse(e.postData.contents);
let row = [];
['name','phone','date','method'].forEach(k => row.push(data[k]));
Logger.log(JSON.stringify(row))
sh.appendRow(row);
}

下面的函数模拟我想象的机器人可以做什么来发送数据。这一个是以JSON的形式发送数据。

function sendData(obj) {
const url = ScriptApp.getService().getUrl();
const params={"contentType":"application/json","payload":JSON.stringify(obj),"muteHttpExceptions":true,"method":"post","headers": {"Authorization": "Bearer " +  ScriptApp.getOAuthToken()}};
UrlFetchApp.fetch(url,params);
}
function saveMyData() {
sendData({name:"name",phone:"phone1",date:"date1",method:"post"});
}

您必须将doPost(e(部署为网络应用程序。

相关内容

  • 没有找到相关文章

最新更新