Last active
July 29, 2017 23:56
-
-
Save rdhyee/11dd7d73d7c5c06963b0de21110cb5d9 to your computer and use it in GitHub Desktop.
straight copy of https://developers.google.com/sheets/api/quickstart/python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from __future__ import print_function | |
import httplib2 | |
import os | |
from apiclient import discovery | |
from oauth2client import client | |
from oauth2client import tools | |
from oauth2client.file import Storage | |
try: | |
import argparse | |
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() | |
except ImportError: | |
flags = None | |
# If modifying these scopes, delete your previously saved credentials | |
# at ~/.credentials/sheets.googleapis.com-python-quickstart.json | |
SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly' | |
CLIENT_SECRET_FILE = 'client_secret.json' | |
APPLICATION_NAME = 'Google Sheets API Python Quickstart' | |
def get_credentials(): | |
"""Gets valid user credentials from storage. | |
If nothing has been stored, or if the stored credentials are invalid, | |
the OAuth2 flow is completed to obtain the new credentials. | |
Returns: | |
Credentials, the obtained credential. | |
""" | |
home_dir = os.path.expanduser('~') | |
credential_dir = os.path.join(home_dir, '.credentials') | |
if not os.path.exists(credential_dir): | |
os.makedirs(credential_dir) | |
credential_path = os.path.join(credential_dir, | |
'sheets.googleapis.com-python-quickstart.json') | |
store = Storage(credential_path) | |
credentials = store.get() | |
if not credentials or credentials.invalid: | |
flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) | |
flow.user_agent = APPLICATION_NAME | |
if flags: | |
credentials = tools.run_flow(flow, store, flags) | |
else: # Needed only for compatibility with Python 2.6 | |
credentials = tools.run(flow, store) | |
print('Storing credentials to ' + credential_path) | |
return credentials | |
def main(): | |
"""Shows basic usage of the Sheets API. | |
Creates a Sheets API service object and prints the names and majors of | |
students in a sample spreadsheet: | |
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit | |
""" | |
credentials = get_credentials() | |
http = credentials.authorize(httplib2.Http()) | |
discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?' | |
'version=v4') | |
service = discovery.build('sheets', 'v4', http=http, | |
discoveryServiceUrl=discoveryUrl) | |
spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms' | |
rangeName = 'Class Data!A2:E' | |
result = service.spreadsheets().values().get( | |
spreadsheetId=spreadsheetId, range=rangeName).execute() | |
values = result.get('values', []) | |
if not values: | |
print('No data found.') | |
else: | |
print('Name, Major:') | |
for row in values: | |
# Print columns A and E, which correspond to indices 0 and 4. | |
print('%s, %s' % (row[0], row[4])) | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment