在使用Sheets 中觸發 Script,此方法只要SpreadsheetApp.getActiveSpreadsheet() 就能取得目前的Sheets
使用Script中讀寫Sheets,此方法需要有Sheets ID,使用SpreadsheetApp.openById(SheetsId) 取得Sheets
首先,我們在雲端硬碟建立一個試算表
上面可以取得Sheets 的 ID,注意不要複製到斜線
在工具→指令碼編輯器,可以進到Apps Script,這個動作會在 [我的專案] 產生一個未命名的專案。
function logProductInfo() {
//取得目前的試算表
var sheet = SpreadsheetApp.getActiveSheet();
//取得資料,會回傳二維陣列,它會自動取得有數值的範圍
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
Logger.log('Product name: ' + data[i][0]);
Logger.log('Product number: ' + data[i][1]);
}
}
getRange(row, column, numRows) : Object[][] ,讀取指定位置開始N行
getRange(row, column, numRows, numColumns) : Object[][] ,讀取指定位置開始N列
getRange(a1Notation) : Object[][] ,讀取指定Sheet,指定範圍,a1Notation 是字串 EX: "MySheet!A1:C5"
function logProductInfo() {
//取得目前的試算表
var sheet = SpreadsheetApp.getActiveSheet();
//取得資料,會回傳指定位置的二維陣列
var data = sheet.getRange(1, 1).getValues();
Logger.log(values[0][0]);
}
例如試算表URL為 https://docs.google.com/spreadsheets/d/abc1234567/edit#gid=0
那你的Sheet ID 為 "abc1234567"
function logProductInfo() {
var sheet_id = "abc1234567";
//取得目前的試算表
var spreadSheet = SpreadsheetApp.openById(sheet_id);
//取得資料,會回傳指定位置指定範圍的二維陣列
var data = spreadSheet.getRange("Data1!A1:B").getValues();
for (var i = 0; i < data.length; i++) {
Logger.log('Product name: ' + data[i][0]);
Logger.log('Product number: ' + data[i][1]);
}
}