比较谷歌脚本中不同电子表格中的两个列

时间:2017-02-14 13:43:38

标签: google-apps-script google-sheets

我想比较两个不同电子表格中的两个不同列。 我的第一个电子表格名为" testtabelle "另一个名为" test "表格的名称都是" Tabellenblatt1" 我想将A @ testtabelle 列与A列 test 进行比较。 如果字符串相等,我需要colum B @ test 中的值并将其复制到同一行的列b @ testtabelle 中,我的字符串匹配。 我想我需要为每一列提供两个循环,并使用if语句来比较这些值。

如果有人可以帮助我,我会很高兴的!

1 个答案:

答案 0 :(得分:0)

您可以使用SpreadsheetApp课程打开多个工作表。查找openByIdopenByUrl,或者应该有效。然后,您可以制作两个电子表格对象,获取每个的A列和B列的值,迭代进行比较,如果A列的值匹配,则复制B列的值。

需要注意的一点是,您应该使用getValuesetValue而不是copyTo,因为我不认为后者可以在不同的电子表格中使用。

你应该得到这样的东西:



// 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




还有一个类似的问题已回答here