Javascript:如果POST响应正常,则在google工作表中设置一个单元格,并使用;好",;,“其他更新”;假;

Javascript:如果POST响应正常,则在google工作表中设置一个单元格,并使用;好",;,“其他更新”;假;,javascript,api,google-apps-script,google-sheets,Javascript,Api,Google Apps Script,Google Sheets,因此,我正在做一项任务,它将挑选google sheet中最后更新的行,并通过外部API将其发布到另一个系统 在成功的回复后,我希望google表单中的某个特定列设置为true,否则如果失败,则应设置为false 我不知道如何去做这件事,并将感谢这里的帮助。下面是发布到外部API的代码的第一部分 function lastRowData(){ var ss = SpreadsheetApp.getActive() var sheet = ss.getActiveSheet() var la

因此,我正在做一项任务,它将挑选google sheet中最后更新的行,并通过外部API将其发布到另一个系统

在成功的回复后,我希望google表单中的某个特定列设置为true,否则如果失败,则应设置为false

我不知道如何去做这件事,并将感谢这里的帮助。下面是发布到外部API的代码的第一部分

function lastRowData(){
 var ss = SpreadsheetApp.getActive()
 var sheet = ss.getActiveSheet()
 var lastRow = sheet.getLastRow() 
 var lastCol = sheet.getLastColumn()
 var lastRowData = sheet.getRange(lastRow,1,1,lastCol).getValues()
 return lastRowData[0]
}
function myFunction() {
var lastRow = lastRowData()
var data = {

    'name':lastRow[2],
    'client': lastRow[3],
    'starts_at':lastRow[5],
    'ends_at':lastRow[6],
    'project_state':lastRow[4],
};
var payload = JSON.stringify(data);
var options = {
    'method': 'POST',
    'Content-Type': 'application/json', 
    'payload' : data,
};
var url = 'https://api.10000ft.com/api/v1/projects?auth=token';
var response = UrlFetchApp.fetch(url, options);
  Logger.log(response);
 return response.getContentText();
}
理想的情况是:

  if (response.ok){
    activesheet.getRange(lastRow,1,1,lastCol).setvalue("true")
    } else {
      activesheet.getRange(lastRow,1,1,lastCol).setvalue("false")
} 
你可以使用


如果只为1个单元格设置值,则可以使用版本(带2个参数)

非常感谢指针。我已经添加了您建议的代码,在执行过程中出现错误ReferenceError:“activesheet”未定义抱歉。我已编辑以添加工作表而不是activeSheet变量。我从你的片段中复制了它。如果要更改多个单元格,可能需要更改..getRange(行、列)。@Wilber再次道歉。这可能仍然不起作用,因为lastRow、lastCol不可用。你想更新哪个手机?谢谢你回来。我希望在复制行的末尾更新一个特定的单元格,比如在复制行之后,单元格K2应该有true或false值。每次复制一行时都应该发生这种情况。如果复制了下一行,则true或false值应反映在K3@Wilber我再次感到抱歉。我从您的代码片段中复制了setValue代码。它应该是setValue而不是setValue(区分大小写)
function getLastRowData(sheet) {

    var lastRow = sheet.getLastRow();
    var lastCol = sheet.getLastColumn();
    var lastRowData = sheet.getRange(lastRow, 1, 1, lastCol).getValues();

    return {data: lastRowData[0], row: lastRow};
}

function myFunction() {

    var ss = SpreadsheetApp.getActive();
    var sheet = ss.getActiveSheet();

    var lastRowData = getLastRowData(sheet);
    var lastRow = lastRowData.row;

    var data = lastRowData.data;

    var data = {

        'name': data[2],
        'client': data[3],
        'starts_at': data[5],
        'ends_at': data[6],
        'project_state': data[4],
    };
    var payload = JSON.stringify(data);

    var options = {
        'method': 'POST',
        'Content-Type': 'application/json',
        'payload': payload,
        'muteHttpExceptions': true
    };
    var url = 'https://api.10000ft.com/api/v1/projects?auth=token';
    var response = UrlFetchApp.fetch(url, options);

    if (response.getResponseCode() === 200) { //or whatever you think will work, 200, 201...
        sheet.getRange('K' + lastRow).setValue("true");
    }
    else {
        sheet.getRange('K' + lastRow).setValue("false");
    }
}