Open3

こじらせたGASの使い方

fuyufuyu

getRangeで範囲指定を適当に取る

デフォルトで1000行取ってくるから10行のvalueを取りたくても990行空白

途中に値のある行間に空白行がある場合と先頭の空白行は残しておきたい

function myFunction() {
  let ss = SpreadsheetApp.getActiveSpreadsheet()
  let sheet_import = ss.getSheetByName("IMPORT用")
  let sheet_output = ss.getSheetByName("GASで処理")
  let cells = sheet_import.getRange("A:A").getValues()

 //配列を逆順にして無駄空白の処理
  var list = cells.reverse()
  var result = []
  for(value of list){
    if ((value != "") || (result.length > 0)){
      result.push(value)
    }
  }
//配列を逆順にして元の通りにする
  sheet_output.getRange(1, 1, result.length).setValues(result.reverse())

}

全部の空白取る

function myFunction() {
  let ss = SpreadsheetApp.getActiveSpreadsheet()
  let sheet_import = ss.getSheetByName("IMPORT用")
  let sheet_output = ss.getSheetByName("GASで処理")
  let cells = sheet_import.getRange("A:A").getValues()

  const f = function checkEmpty(value) {
    return value[0].length > 0;
  }

  var list = cells.filter(f)
  sheet_output.getRange(1, 1, list.length).setValues(list)
}
fuyufuyu

Arrowの練習

空白を除いて、テキストの末尾を一文字抜く

function myFunction() {
  let ss = SpreadsheetApp.getActiveSpreadsheet()
  let sheet_import = ss.getSheetByName("IMPORT用")
  let sheet_output = ss.getSheetByName("GASで処理")
  let cells = sheet_import.getRange("A:A").getValues()

  const checkEmpty = value => value[0].length > 0;
  const removeString = value => (value.length > 0)? [value[0].substr(1,value[0].length -1)]:value

  var list = cells.filter(checkEmpty).map(removeString)
  sheet_output.getRange(1, 1, list.length).setValues(list)
}

参考

https://developers.google.com/apps-script/guides/v8-runtime?hl=ja#classes