以编程方式删除空行

时间:2020-07-16 13:35:35

标签: javascript google-apps-script google-sheets

这是我的床单

如您所见,第2行和第6行为空,因为我手动删除了某些产品。我的问题是如何以编程方式删除那些空行并替换为其他产品填充行?

var ss = SpreadsheetApp.openById("my spreadsheet id");
var sheet = ss.getSheets()[0];
var data = sheet.getDataRange().getValues();

2 个答案:

答案 0 :(得分:1)

删除所有空行

function deleteEmpties() {
  //I would typically prefer SpreadsheetApp.getActive() but I used this because thats what you function contained
  const ss=SpreadsheetApp.openById("my spreadsheet id");
  //I would typical prefer using getSheetByName() but I used this because thats what your function contained
  const sh=ss.getSheets()[0];
  const shsr=2;//data start row
  const vs=sh.getRange(shsr,1,sh.getLastRow()-shsr+1,sh.getLastColumn()).getValues();
  let d=0;//delete counter
  vs.forEach(function(r,i){
    //deletes row if row is completely empty
    if(r.join('').length==0) {
      sh.deleteRow(i+shsr-d++)//increment delete counter on each delete because the rows are leaving the spreadsheet but not the data array
    }
  });
}

答案 1 :(得分:0)

这是Spreadsheet类的文档:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet

有关deleteRow的信息可以在这里找到:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#deleterowrowposition

示例:

var ss = SpreadsheetApp.openById("my spreadsheet id");
var sheet = ss.getSheets()[0];
// Rows start at "1" - this deletes the first row
sheet.deleteRow(2);
sheet.deleteRow(6);