Google apps script 如何删除包含子字符串或为空的列?
下面是我的代码:Google apps script 如何删除包含子字符串或为空的列?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,下面是我的代码: delCol跟踪删除了多少列(以保持迭代对齐) 工作表是活动的电子表格 data是我正在搜索的行中的值数组,通过SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(“2:2”).getValues()检索 函数deleteRows(){ var-delCol=0; var data=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRan
delCol
跟踪删除了多少列(以保持迭代对齐)
工作表
是活动的电子表格
data
是我正在搜索的行中的值数组,通过SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(“2:2”).getValues()检索代码>
函数deleteRows(){
var-delCol=0;
var data=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(“2:2”).getValues();
var sheet=SpreadsheetApp.getActiveSheet();
对于(var i=0;i-1 | |数据[0][i-delCol]==“”){
表1.删除列(i-delCol+1);
delCol++;
}
}
}
当我运行这段代码时,每一列都会被删除 试试这个:
function runOne(s) {
var s=s||'deleteme';//The substring
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=transpose(rg.getValues());
var d=0;
for(var i=0;i-d<vA.length;i++) {
var deleted=false;
if(vA[i-d].join('').length==0) {
vA.splice(i-d++,1);
deleted=true;
}
var rs=vA[i-d].join(' ');
if(!deleted && rs.indexOf(s)!=-1) {
vA.splice(i-d++,1);
}
}
sh.clearContents();
var oA=transpose(vA);
sh.getRange(1,1,oA.length,oA[0].length).setValues(oA);
}
function transpose(a) {
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}
功能runOne(s){
var s=s | |“deleteme”;//子字符串
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=转置(rg.getValues());
var d=0;
for(var i=0;i-d当您调用范围中包含的2D数组时,该数组中的数据将复制到脚本运行时的内存中。之后,如果您修改范围的数据(使用诸如的调用),将修改工作表中的数据,但不会修改2D数组中的数据
更具体地说,代码中的错误是在评估if语句的条件时。在访问2D数组时,您考虑了delCol
,而实际上,您不需要这样做。请参阅下面的代码更正:
函数deleteRows(){
var-delCol=0;
var data=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(“2:2”).getValues();
var sheet=SpreadsheetApp.getActiveSheet();
对于(var i=0;i-1 | |数据[0][i]=“”){
表1.删除列(i-delCol+1);
delCol++;
}
}
}
请共享电子表格,您将删除您不打算的某个列,因为您从开始栏删除到最后一列,请将其反转,以(var i=数据(0)。长度1;i>0;i)-高兴地我能够帮助!)请考虑。欢呼!希望我能投票,但我还没有足够的声誉!
function runOne(s) {
var s=s||'deleteme';//The substring
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=transpose(rg.getValues());
var d=0;
for(var i=0;i-d<vA.length;i++) {
var deleted=false;
if(vA[i-d].join('').length==0) {
vA.splice(i-d++,1);
deleted=true;
}
var rs=vA[i-d].join(' ');
if(!deleted && rs.indexOf(s)!=-1) {
vA.splice(i-d++,1);
}
}
sh.clearContents();
var oA=transpose(vA);
sh.getRange(1,1,oA.length,oA[0].length).setValues(oA);
}
function transpose(a) {
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}