努力載入中

Ruby 透過 Google API 串接 Excel (SpreadSheet)

2024-01-17

文章目錄

本文最後更新日期 2024/1/17。

準備工作

  1. google API 憑證申請:參考 IT 邦幫忙 ,取得下載後的憑證 (json 檔案)
  2. 雲端檔案如果是 xlsx 的話,必須先轉換為 google 試算表格式。 (參考以下截圖)

環境

# Gemfile
gem 'googleauth'
gem 'google-apis-sheets_v4'

讀取憑證

client = Google::Apis::SheetsV4::SheetsService.new
cred_file = '/tmp/secret.json'
authorizer = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: File.open(cred_file), scope: [Google::Apis::SheetsV4::AUTH_SPREADSHEETS])
client.authorization = authorizer

  1. cred_file 為準備工作所下載的憑證檔案
  2. scope 可參考官方資料 (搜尋 "AUTH_")

使用

client.get_spreadsheet_values(spreadsheet_id, "哈哈!A3:J507").to_h

  1. spreadsheet_id 為網址中的  https://docs.google.com/spreadsheets/d/{spreadsheet_id}/edit 
  2. "哈哈!A3:J507" 可參考官方說明的範圍選擇方式
  3. 更多 client 的使用 API 可參考官方 ruby 文件

其他參考資料

  1. 認證失敗問題,顯示錯誤訊息: This operation is not supported for this document,參考 stackoverflow
  2. API 參數說明
  3. 認證套件說明

相關文章

設定電子郵件 DKIM

設定電子郵件 DKIM

以 AWS SES 和 Gmail 為例,說明如何設定 DKIM,並且提供相關檢測工具。DKIM 除了需要透過 DNS TXT 設定完,需要先申請好簽署用的金鑰。
正念冥想使用心得

正念冥想使用心得

在實行正念冥想後一年半的日子裡,所獲得的體悟,以及對生活和工作上的改變,同時分享正念冥想的一些小技巧。
用 AWS Transfer + S3 架設 FTP

用 AWS Transfer + S3 架設 FTP

本篇文章將一步步教學如何利用 AWS 架設 FTP,使用的服務包含 AWS Transfer 、S3、SNS(Simple Notification Service)。實現檔案傳輸,以及被動獲得檔案上傳的通知。
Sidekiq 介面壞掉

Sidekiq 介面壞掉

很久以前修過的問題,再次出現時,又忘了為何如此,所以這次完整把 Sidekiq web 介面遇到的壞掉問題修復方式完整記錄起來。