将列从 Sheet1 复制到 Sheet2 并使用 Google App Script 进行远程复制



如何将所有唯一行从SOURCE电子表格复制/附加到DESTINATION电子表格。

  • 电子表格#1(SOURCE(-包含ID和名称。此工作表有重复的行。500k行以上(访问:仅限视图(
  • 电子表格#2(目的地(-仅包含带名称的唯一ID。(访问:编辑(

此脚本有效,但它复制了所有内容(包括重复内容(。

function transferIDs() {
var sss = SpreadsheetApp.openById('%'); //SOURCE
var ss = sss.getSheetByName('Sheet1');
var SRange = ss.getDataRange();
var A1Range = SRange.getA1Notation();
var SData = SRange.getValues();
var dss = SpreadsheetApp.openById('#'); //DESTINATION
var ds = dss.getSheetByName('Sheet1');
ds.clear({contentsOnly: true});
ds.getRange(A1Range).setValues(SData);
}

电子表格#1 SOURCE(包含重复行(

AB
ID名称
X123456约翰
Y112233Sarah
X9988877阿曼达
012344鲍勃
X9988877阿曼达

使用带集合的过滤器:

SData更改为

const SData = SRange.getValues().filter(
(set => row => set.has(row[0]) ? false : set.add(row[0]))(new Set)
);

并修改目的地范围:

ds.getRange(1,1,SData.length,SData[0].length).setValues(SData);

最新更新