compare two colums in different spreadsheets in go

2019-09-08 12:15发布

问题:

i want to compare tow different columns in two different spreadsheets. My first spreadsheet is named "testtabelle" and the other is named "test" the name of the sheets are both "Tabellenblatt1" I want to compare column A @ testtabelle with column A @ test. If the string are equal, i need the value from colum B @ test and copy it into column b @ testtabelle of the same row, where my strings matched. I think i need two loops for every column and a if statement to compare the values.

I'll be glad if someone can help me!

回答1:

You can use the SpreadsheetApp class to open multiple sheets. Look up openById or openByUrl, either should work. You can then make two spreadsheet objects, get the values of column A and B of each, iterate through to compare, and copy the value of column B if the values of column A match.

One thing to note is you should use getValue and setValue rather than copyTo as I don't think the latter works across separate spreadsheets.

You should end up with something like this:

// gets spreadsheet A and the range of data
ssA = SpreadsheetApp.openById('ID of spreadsheet A');
sheetA = ssA.getSheetByName('name of sheet in ssA');
dataA = sheetA.getRange('A:B').getValues();
// gets spreadsheet B and the range of data
ssB = SpreadsheetApp.openById('ID of spreadsheet B');
sheetB = ssB.getSheetByName('name of sheet in ssB');
dataB = sheetB.getRange('A:B').getValues();

// loops through column A of spreadsheet A & B and compares
for(var i = 0; i > sheetA.getLastRow(); i++){
  // checks to see if ith value in 2nd row is the same
  if dataA[1][i] == dataB[1][i]{
    var value = sheetA.getRange(i+1, 2).getValue();
    // used i+1 because index of range is 1, while index of the data array is 0
    sheetB.getRange(i+1, 2).setValue(value);
  } // end if
} // end i

There's also a similar question answered here.