我有两个垂直的1D数组,一个包含现有数据,另一个可能(潜在(存在差异。
我希望能够比较这两个数组,找出差异和每个单元格的索引。
然后,我将使用这些信息在现有数据中找到需要更改的适当单元格,并在这些特定单元格中设置新值,而无需复制和粘贴整个数组。
例如:
现有数据 | ||
---|---|---|
John Smith | John Smith | |
012345 | 012345 | |
六年级 | 七年级 | |
555-1234 | 555-1357 | |
小号 | ||
第5期 | 第2期 | |
Jane Smith | Jane Smith | |
js@email.com | js@email.com |
解决方案:
遍历新的数据数组。对于每个值,检查新值是否与旧值匹配。如果是这种情况,请将相应的值和索引添加到list
中。
然后迭代list
,对于每对值和索引,将值写入相应的单元格。
代码段:
newVal.forEach(function(row, index) {
if (row[0] === origVal[index][0]) {
list.push([row[0], index]);
}
});
var firstRow = 2; // Change according to your preferences
var columnIndex = 1; // Change according to your preferences
list.forEach(data => {
sheet.getRange(data[1] + firstRow, columnIndex).setValue(data[0]);
});
注意事项:
- 我不知道数据应该写在哪里,所以我使用了未定义的
sheet
,以及firstRow
和columnIndex
的随机值。请根据您的喜好进行更改 - 从脚本的角度来看,一次将整列写入目标范围会更高效,因为这样可以最大限度地减少脚本和电子表格之间的交互次数(请参阅使用批处理操作(。不过,由于您只想写入更新后的数据,因此我提供了一个执行此操作的脚本