Google apps script 比较谷歌电子表格上的行
我想在同一个电子表格的两张不同的表格中确定相等的行。我试过下面的代码,它不工作Google apps script 比较谷歌电子表格上的行,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想在同一个电子表格的两张不同的表格中确定相等的行。我试过下面的代码,它不工作 function getMyEqualRows() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = ss.getSheets()[0]; var sheet2 = ss.getSheets()[1]; var sheetOneValues = sheet1.getRange('A1:G20').getValues(); var
function getMyEqualRows()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheets()[0];
var sheet2 = ss.getSheets()[1];
var sheetOneValues = sheet1.getRange('A1:G20').getValues();
var sheetTwoValues = sheet2.getRange('A1:G20').getValues();
var equalRows = [];
for (var i = 0; i <= sheetOneValues.length; i++) {
for(var j = 0; j <= sheetTwoValues.length; j++){
if(sheetOneValues[i] == sheetTwoValues[j]) {
equalRows.push(sheetOneValues[i]);
}
}
return equalRows;
}
}
函数getMyEqualRows()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet1=ss.getSheets()[0];
var sheet2=ss.getSheets()[1];
var sheetOneValues=sheet1.getRange('A1:G20').getValues();
var sheetTwoValues=sheet2.getRange('A1:G20').getValues();
var equalRows=[];
对于(var i=0;i您不能比较两个
数组是否与=
相等。相反,您可以使用.join()
方法。它将这些数组中的所有元素连接到一个字符串。这将检查字符串数组是否相等。我不确定这是否是最好的方法
function getMyEqualRows()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheets()[0];
var sheet2 = ss.getSheets()[1];
var sheetOneValues = sheet1.getRange('A1:G20').getValues();
var sheetTwoValues = sheet2.getRange('A1:G20').getValues();
var equalRows = [];
for(var i in sheetOneValues)
{
var anEqualRow = false;
for(var j in sheetTwoValues)
{
if(sheetOneValues[i].join() == sheetTwoValues[j].join()){
anEqualRow = true;
}
}
if(anEqualRow){
equalRows.push(sheetOneValues[i]);
}
}
return equalRows;
}
希望这能起作用!sheetOneValues[i]和sheetTwoValues[j]是数组。你不能将数组与==进行比较。非常感谢@ijay。这太完美了!