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