スプレッドシートを使って定期的にデータを取得していると
シートの最後の行をコピーして次の行にコピーしたいことが多くあるのでまとめておきます
{sheet}.getLastRow();
という関数があるのでこちらを使いました。
var spreadsheet = SpreadsheetApp.openById('hoge');
var sheet = spreadsheet.getSheetByName("fuga");
function copyLastRow() {
var lastRow = sheet.getLastRow();
var copyRow = lastRow + 1;
sheet.getRange(lastRow,1,1,10).copyTo(sheet.getRange(copyRow,1));
}
// コピーした後に日付(1行目)と更新する値(8行目)を変更するスクリプト
function pushWeeklyData() {
var lastRow = sheet.getLastRow();
var copyRow = lastRow + 1;
sheet.getRange(lastRow,1,1,10).copyTo(sheet.getRange(copyRow,1));
var today = getToday();
var data = getData('hoge');
sheet.getRange(copyRow,1).setValue(today);
sheet.getRange(copyRow,8).setValue(data);
}
function getToday() {
return Utilities.formatDate(new Date(),"JST","yyyy/MM/dd");
}
function getData(param) {
return 'hoge!';
}