Open3
こじらせたGASの使い方
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)
}
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)
}
参考
String.fromCharCodeの引数をコード内で書く方法がわからなかった
console.log(String.fromCharCode(...Array.from({length: 26}, (_,i) => 'A'.charCodeAt(0) + i)))
//ABCDEFGHIJKLMNOPQRSTUVWXYZ
Array.from({length: 26},...
この書き方も初見
参考