【发布时间】:2020-12-09 01:33:18
【问题描述】:
我似乎无法弄清楚如何让这个脚本跳过列L。我尝试了许多不同的品种,但都导致错误。希望有经验的大侠指点一下。我需要I:K 和M:O 而没有L。
sheet1.getRange("I1:O"+sheet1.getLastRow()).getValues()
【问题讨论】:
标签: javascript google-apps-script google-sheets
我似乎无法弄清楚如何让这个脚本跳过列L。我尝试了许多不同的品种,但都导致错误。希望有经验的大侠指点一下。我需要I:K 和M:O 而没有L。
sheet1.getRange("I1:O"+sheet1.getLastRow()).getValues()
【问题讨论】:
标签: javascript google-apps-script google-sheets
作为一个简单的修改,下面的修改怎么样?
sheet1.getRange("I1:O"+sheet1.getLastRow()).getValues()
sheet1.getRange("I1:O"+sheet1.getLastRow()).getValues().map(([i,j,k,,m,n,o]) => [i,j,k,m,n,o]);
或
sheet1.getRange("I1:O"+sheet1.getLastRow()).getValues().map(([i,j,k,,...mno]) => [i,j,k,...mno]);
【讨论】:
另一种方法:
const array = sheet1.getRange('I1:O'+sheet1.getLastRow()).getValues();
array.forEach(a => a.splice(3, 1));
更详细地说,之所以选择3,是因为从0开始,L位于第三位:I, J, K, L。
代码 sn-p:
function myFunction() {
const ss = SpreadsheetApp.getActive();
const sheet1 = ss.getSheetByName('Sheet1');
const array = sheet1.getRange('I1:O'+sheet1.getLastRow()).getValues();
array.forEach(a => a.splice(3, 1));
console.log(array);
}
【讨论】:
splice时,可以节省运行Google Apps Script的内存。
splice 用于数组时,这样的错误变得难以发生。如果这个解释没有用,我很抱歉。