Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google脚本:如何查找和更新整行_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script Google脚本:如何查找和更新整行

Google apps script Google脚本:如何查找和更新整行,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在寻找一种方法来测试范围是否已经存在。如果是新条目,它将作为最后一行添加,如果不是,它将更新现有行 function Submit() { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Placeholder'); var range = ss.getRange('A2:AS2'); /* The string to Test is if C2 from place holder sheet is

我正在寻找一种方法来测试范围是否已经存在。如果是新条目,它将作为最后一行添加,如果不是,它将更新现有行

function Submit() {

 var ss =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Placeholder'); 

 var range = ss.getRange('A2:AS2'); 

/*
The string to Test is if C2 from place holder sheet is
already present on the Master Sheet at C column 
*/

 var data = range.getValues();

 var ts =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master'); 

 ts.getRange(ts.getLastRow() + 1, 1, 1, 45).setValues(data); //you will need to define the size of the copied data see getRange()

 Clearfunc();

 SpreadsheetApp.getUi().alert('Submitted');

}

您可以读取主工作表的值并迭代这些值,以确定哪一行(索引)包含相同的值。一旦有了索引,就可以用更新的数据更新该范围

它应该是这样的:

// get values
var masterSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
var masterData = masterSheet.getDataRange().getValues();
var updateIndex;

// loop through master data to find the correct index
masterData.some(function (row, idx) {
  // check column c equals new data column c
  // data[0] because is multidimensional
  if(row[2] === data[0][2]) {
    updateIndex = idx;
    return updateIndex;
  }
});

// in case updateIndex is set we should update the data else it is a new record
if(updateIndex !== undefined) {
  masterSheet.getRange(updateIndex, 1, 1, data[0].length).setValues(data);
}


设法找出答案

function Update(){
  var ss =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Placeholder'); 
  var range = ss.getRange('A2:AS2')
  var data = range.getValues();
  var Key = ss.getRange('C2').getValue(); 
  var ts =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master'); 
  var datarange = ts.getRange('C1:C');
  var datavalues = datarange.getValues(); 

  for (var r=0; r<=datavalues.length; r++) 
  { 
     var ss =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Placeholder'); 
     var Key = ss.getRange('C2').getValue();    
    if(datavalues[r] == Key)
       {ts.getRange(r+1, 1,1,45).setValues(data);}
  }
Clearlookupfunc();
SpreadsheetApp.getUi().alert('Update Submitted');
}
函数更新(){
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('占位符');
var range=ss.getRange('A2:AS2')
var data=range.getValues();
var Key=ss.getRange('C2').getValue();
var ts=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
var datarange=ts.getRange('C1:C');
var datavalues=datarange.getValues();
对于(var r=0;r