前言
有天爬文爬一爬,突然看到Google Excel可以用post跟get的方式,將資料傳去google excel內。
正文
1.首先開啟google Excel2.從工具->指令碼編輯器 去開啟GAS(Fig. 1 –1 ),會開啟一個編輯器的視窗(Fig .2)
(Fig.1 )
(Fig .2)
3.開始寫吧。
doPost
function doPost(e){    
  var par = e.parameter;     
  var keyword = par.word;
  //GET Excel id (從Fig.1 -2去查到你的ID)     
  var excelID = SpreadsheetApp.openById("1Na69UPnX_RL70eaHA");     
  //Get Excel Sheet Name(從Fig.1 -3去查到你的sheet Name)     
  var Sheet = excelID.getSheetByName("sheet1");  
  var LastRow = Sheet.getLastRow();     
  
  Sheet.getRange(LastRow+1,1).setValue(keyword);     
  
  return ContentService.createTextOutput("The word is " + keyword);     
}
doGet
//回傳json   
function doGet() {
  //GET Excel id (從Fig.1 -2去查到你的ID)    
  var excelID = SpreadsheetApp.openById("1Na69UPnX_RL70eaHA");    
    //Get Excel Sheet Name(從Fig.1 -3去查到你的sheet Name)     
  var Sheet = excelID.getSheetByName("sheet1");    
  var lastRow = Sheet.getLastRow();    
  
  var word = Sheet.getRange(2, 1).getValue();    
  // 第二種 return Json    
  var JSONString = JSON.stringify({ keyWord: word })    
  return ContentService.createTextOutput(JSONString)    
      .setMimeType(ContentService.MimeType.JSON);    
  /*  第一種 return JSON     
  return ContentService    
      .createTextOutput(JSON.stringify({ keyWord: word }))    
      .setMimeType(ContentService.MimeType.JSON);     
  */    
}
程式基本上沒有什麼比較困難的,那些函數…請查文件
首先是 SpreadsheetApp 、sheet
4.好了之後要發佈的話,按下 發佈->部屬為網路應用程式(Fig.3)
(Fig.3)
即可使用postman去做測試了。
有一點要特別注意,這邊的Project version的意思是,你要選擇第幾版的程式去做你的webAPI
Google並不是你發佈一次就給你一個新網址。
所以你測試完了,要上新的程式,請選擇新增~不然會發現程式一直抓都抓舊的。
如果要測試的話,建議可以直接使用 發佈->從資訊清單部屬 (Fig .4)
(Fig.4)
這邊的網址,只要每一次存檔後,字串都會不一樣,可以拿這個網址來做測試。
但有一點奇怪的是,直接點網址get回傳的值網頁上是有資料的,
但postman回來的卻會說找不到網頁,猜測可能是安全性的問題,
是說發佈太多會覺得煩而已,也沒什麼實際上的差別。
ref.
利用 Google Script 將 Google Sheet試算表,變成簡易資料庫使用(寫入篇)
[教學] 利用 Google Script 發送EMAIL確認信,且不用設定Gmail帳密與SMTP
Google App Script到底是什麼?




沒有留言:
張貼留言