Quantcast
Channel: WFU BLOG
Viewing all articles
Browse latest Browse all 571

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

$
0
0
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 金鑰」在前端使用的話,會被使用者看到,那麼建議按「限制金鑰」進行其他設定/li>
  • 同上,為了避免金鑰被別人拿去用,建議「應用程式限制」設定為自己網址,「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
  • 工作表名稱及範圍:這部分的詳細說明可參考官網文件「」→「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 + "?callback=?&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 571

Trending Articles