2016/05/18

Google Apps Script在Spreadsheet的應用入門

今天有幸需要用到Apps Script
就看看API,看看範例
想說寫個87分的筆記
睽違兩年更新網誌
進入正題
MS Office Excel可以利用VBA撰寫指令
而LibreOffice可以利用LibreOffice, Basic, JavaScript, BeanShell, Python,支援語言很多
Google Spreadsheet利用JavaScript撰寫,搭配Apps Script API可以實現很多功。Apps Script API有許多可以使用的地方幾乎涵蓋所有Google提供的服務。若要將Spreadsheet與Apps Script結合使用有幾個很重要的Classes與Methods需要瞭解。
Class:
  1. Spreadsheet
    主要管理開關文件,文件最基礎的設定幾乎都包含在內
  2. Sheet
    一頁頁的表格的設定
  3. Range
    關於儲存格的操作(ex. 設定儲存格資料)
因為這三者有層級關係,最方便的放是就是從最上方開始操作。
操作順序Spreadsheet -> Sheet -> Range
有個簡單的範例
function testFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var centerList = ['花蓮大專', '台東大專', '屏東大專', '高雄大專',
      '台南大專', '嘉義大專', '彰化大專', '台中大專', '新竹大專', '台北大專'];
  var i;
  for(i=0; i<centerList.length; i++){
    ss.insertSheet(centerList[i]);
  }
  var sheet;
  var range;
  for(i=0; i<centerList.length; i++){
    sheet = ss.getSheetByName(centerList[i]);
    range = sheet.getRange('A1');
    range.setValue('No. ' + String(i+1));
  }
}
先利用
SpreadsheetApp.getActiveSpreadsheet();
取得要操作的spreadsheet
ss.insertSheet(centerList[i]);
把已取得的spreadsheet中新增sheet
sheet = ss.getSheetByName(centerList[i]);
使用sheet的名字得到sheet
range = sheet.getRange('A1');
選取sheet的儲存格A1
range.setValue('No. ' + String(i+1));
設定儲存格的內容。
原理相當簡單,配合其他Methods能夠達到更多功能
我忘了最重要的第一部:要如何打開指令碼編輯器
在Google drive中新增Google 試算表 -> 打開工具列中的'工具'標籤 -> 點擊'指令碼編輯器...'
此時會開新的分頁,就可以開始撰寫指令碼。
上方的工具列有個播放的符號按下後會執行指令碼,不過在執行之前要選擇你項要執行的function,下面的圖片是選擇執行叫做testFunction的function。

謝謝收看

沒有留言:

張貼留言