Skip to content

Instantly share code, notes, and snippets.

@hirokai
Last active October 30, 2017 01:47
Show Gist options
  • Save hirokai/349ea38076c54417d195 to your computer and use it in GitHub Desktop.
Save hirokai/349ea38076c54417d195 to your computer and use it in GitHub Desktop.

Google sheetsのデータは、URLで共有(限定公開)することでローカルのスクリプトから読み込むことができる。その際、https://docs.google.com/spreadsheets/d/#{sheet_id}/export?format=csv&gid=#{page_id}というURLでアクセスすることで、CSV形式で読み込める。{sheet_id} はワークシートのID、{page_id}はページのIDで、シートを開いた時のURLに表示されているものと同じ。

Rubyでの読み込み

SSLで読み込むために、

require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

が必要。そして、

sheet_id = '*****'
page_id = '0'
CSV.parse(open("https://docs.google.com/spreadsheets/d/#{sheet_id}/export?format=csv&gid=#{page_id}", "r:UTF-8")) do |row|
  p row
end

で読み込める。

Pythonでの読み込み

Pandasを使う場合は、以下のようになる。

import pandas as pd
url = "https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={page_id}"
df = pd.read_csv(url,header=2)

また、plainなPythonであれば、ここにあるように、以下のようになる。

import csv
import urllib2

url = "https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={page_id}"
response = urllib2.urlopen(url)
cr = csv.reader(response)

for row in cr:
    print row
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment