因為受親友所託,略略研究了一下Google Apps Script。不記錄下來好像有點可惜。
假設今天在Google drive上放了一些表單,spreadsheet之類的,想對它們進行自動操作該怎麼辦呢?
第一個範例:
function CopyNewSheet() {
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1fYgyKkOAWKOQo79UHejnNfh-YUYdyhV8ZmgbDcGwUGY/');
//get Sheet and add something
var nsize = ss.getNumSheets();
ss.insertSheet('newsheet2', nsize);
var ps = ss.getSheets()[0];
var ns = ss.getSheets()[nsize];
var data = ps.getDataRange();
var data2 = ns.getDataRange();
data.copyTo(data2);
}
openByUrl這一步可以得到該表單,但是這只會指向表單的第一頁。如果想要取得後面的就要呼叫getSheets()[idx]; index自然是從0開始了。
取得data則必須用getDataRange(); 會取到sheet裡全部的範圍,就像我們在excel裡選取的範圍。
注意這取到的是指標,所以我們可以把一個range貼到另一個,上述code的結果就是把ps這個sheet完完全全複製到ns,就連公式也一樣。
但如果不想複製公式,只要取值,就要改成:
var data = ps.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
ns.appendRow(data[i]);
}
沒有留言:
張貼留言