Open8
gas

web表示
let、constは関数宣言してるだけ
doGet web表示関数
function doGet() {
// page関数にindex.htmlを代入
let page = 'index';
// HtmlService.createTemplateFromFile でwebに表示される
const template = HtmlService.createTemplateFromFile(page);
return template.evaluate();
}

画面のURLを取得する関数
function getAppUrl() {
return ScriptApp.getService().getUrl();
}

スプレッドシートに書きこむ関数
function insertRecord(param){
let reservationTime = 0;
const fromDate = new Date(param.calendar_date_from +' ' + param.calendar_time_from);
const toDate = new Date(param.calendar_date_to + ' ' + param.calendar_time_to);
const diffDate = toDate.getTime() - fromDate.getTime();
const diffMinute = Math.floor(diffDate / (60000));
reservationTime = diffMinute/60;
//この順番にスプレッドシートに格納される
const data = [[
param.user_id,
param.user_name,
param.calendar_date_from,
param.calendar_time_from,
param.calendar_date_to,
param.calendar_time_to,
param.comment,
reservationTime,
new Date()
]];
//SPREAD_SHEET_IDは連携するスプレッドシートのID、SHEET_NAMEはシート名をそれぞれ置き換えてください。
const app = SpreadsheetApp.openById('1aR63MhbzVEWptDcs6lwXZVIRm6Uai7W_EHAfsP6LyNU');
const sheet = app.getSheetByName('test');
const insertRow = sheet.getDataRange().getLastRow() + 1; //挿入行
const insertCol = 1; //挿入列
const insertRowNum = data.length; //挿入行数
const insertColNum = data[0].length; //挿入列数(データ数)
const insertRange = sheet.getRange(insertRow, insertCol,insertRowNum,insertColNum);
insertRange.setValues(data);
}

= transpose(split(join(char(10)、A1:A4)、char(10)))

スペース削除
=SUBSTITUTE(SUBSTITUTE(B2, " ", ""), " ", "")
改行を識別しセルに行に分割
=TRANSPOSE(SPLIT(C14,CHAR(10)))

たさなくさ