如何將 SOURCE 電子表格中的所有唯一行復制/附加到 DESTINATION 電子表格。
- 電子表格 #1 (SOURCE) - 包含 ID 和名稱。此作業表有重復的行。500k 行(訪問:僅查看)
- 電子表格 #2 (DESTINATION) - 僅包含唯一 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(包含重復行)
| 一個 | 乙 |
|---|---|
| ID | 名稱 |
| X123456 | 約翰 |
| Y112233 | 莎拉 |
| X998877 | 阿曼達 |
| 012344 | 鮑勃 |
| X998877 | 阿曼達 |
電子表格 #2 DESTINATION(使用 GAS 填充,無重復,預期結果)
| 一個 | 乙 |
|---|---|
| ID | 名稱 |
| X123456 | 約翰 |
| Y112233 | 莎拉 |
| X998877 | 阿曼達 |
| 012344 | 鮑勃 |
uj5u.com熱心網友回復:
使用 帶set 的過濾器:
更改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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383210.html
標籤:javascript 数组 谷歌应用程序脚本 谷歌表格
