Quantcast
Viewing all articles
Browse latest Browse all 789

操作 Sheet API 讀取 Google 試算表取得 JSON 資料

Image may be NSFW.
Clik here to view.
Google Sheet API」可用來存取 Google 試算表資料,但卻是我少數不推薦使用的 Google API,原因可參考之前寫的「利用 Google 試算表當小型資料庫 (4)使用 SQL 語法讓搜尋功能更強大」→「1. Sheet API 功能不佳」,因為 Sheet API 無法對資料進行篩選、搜尋,導致每次都得讀取所有資料後,再自己寫程式進行過濾。 然而去年 Google 試算表進行某次更新後,之前寫的「利用 Google 試算表當小型資料庫 (2)讀取資料庫」方法已然失效,無法從試算表 feed 讀取資料。根據官方的說法「GData API Directory」→「Google Spreadsheets Data API → Deprecated. Replaced by the Google Sheets API v4.」,意思就是 Google 宣布舊的試算表 API 已失效,建議即日起改用 Sheet API V4 取代原本的讀取方式。 因此本篇整理如何操作 Sheet API,取代原本的操作方式,來取得 JSON 格式的試算表資料。 (圖片出處: pexels.com)

一、Sheet API 準備動作

以下流程請參考這篇「取得 Google API Key(金鑰) 流程」進行操作: 1. 啟用 Sheet API
  • 按照該篇文章完成「一、建立專案」
  • 進行「二、啟用 Google API 服務」時,可輸入 Sheet API,找到後「啟用」
2. 取得 API KEY
  • 接著依照「三、取得 API Key」的流程,建立一組「API 金鑰」,請記住這組字串,之後會用到。
  • 如果這組「API 金鑰」在前端使用的話,會被使用者看到,那麼建議按「限制金鑰」進行其他設定。
  • 同上,為了避免金鑰被別人拿去用,建議「應用程式限制」設定為自己網址,「API 限制」設定為「Sheet API」才能使用。
3. 調整試算表共用權限要讀取的試算表,記得要開放權限,不能只有自己才可讀取,至少要開放為「任何知道這個連結的網際網路使用者都能查看」。

二、Sheet API 讀取資料

1. 官網文件讀取試算表資料的操作語法說明請見「spreadsheets.values.get」: GET https://sheets.googleapis.com/v4/spreadsheets/[試算表 ID]/values/[工作表名稱及範圍]官方也提供了「Sheet API 測試工具」,進入後切換到「HTTP」可看到以下語法: GET https://sheets.googleapis.com/v4/spreadsheets/[試算表 ID]/values/[工作表名稱及範圍]?key=[API 金鑰]自行輸入以上參數就可看到取回的資料,JSON 格式大致長得像這樣: { "range": "sheet1!A1:Z4850", "majorDimension": "ROWS", "values": [ [ "時間", "稱謂", "性別", "註解" ], [ "2016/11/29 0:00:00", "Wayne", "male", "測試寫入功能" ], [ "2016/11/29 0:00:00", "Mary", "female", "成功!" ] ] } 2. 參數說明這裡說明前述的參數如何填寫:
  • 試算表 ID:試算表網址字串中 ~/d/xxxxxxxxxxxx/edit~ xxxx 這一長串就是試算表 ID
  • 工作表名稱及範圍:這部分的詳細說明可參考官網文件「Google Sheets API Overview」→「Cell」→「A1 notation」或「R1C1 notation」,最簡單就是填入工作表名稱就好,例如「工作表1」,代表選擇全部範圍
  • API 金鑰:填入前面「一、Sheet API 準備動作」取得的金鑰字串

三、操作範例

本篇同樣以這個試算表當做範例說明: 以下為 jQuery 範例程式碼: <div id="wfu_sheet_json"></div> <script src='//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script> <script> var spreadsheet_id = "106tP9D89pnEgvZTuM3_ahMJRPjCSD3qthth-GEhGMIE", // 填入試算表 ID tab_name = "sheet1", // 填入工作表名稱 api_key = "xxxxxxxxxx", // 填入 API 金鑰 url = "https://sheets.googleapis.com/v4/spreadsheets/" + spreadsheet_id + "/values/" + tab_name + "?key=" + api_key; $.getJSON(url, function(json) { var values = json.values, // 所有試算表資料 html = ""; html += "<table>"; values.forEach(function(rows) { html += "<tr>"; rows.forEach(function(item) { html += "<td>" + item + "</td>"; }); html += "</tr>"; }); html += "</table>"; $("#wfu_sheet_json").html(html); }); </script>以下是程式碼的執行效果範例,只取前 5 筆顯示:
時間稱謂性別註解
2016/11/29 0:00:00Waynemale測試寫入功能
2016/11/29 0:00:00Maryfemale成功!
2017/01/12 16:06:13
2017/01/13 0:01:00testfejj
用 Google Apps Script 操作試算表系列文章:
更多「Google 試算表」相關文章:

Viewing all articles
Browse latest Browse all 789

Trending Articles