Skip to main content

Google Spreadsheets API

A simple Python wrapper for the Google Spreadsheeta API. [![Build Status](https://secure.travis-ci.org/yoavaviram/python-google-spreadsheet.png?branch=master)](http://travis-ci.org/yoavaviram/python-google-spreadsheet)

Features

  • An object oriented interface for Worksheets

  • Supports List Feed view of spreadsheet rows, represented as dictionaries

  • Compatible with Google App Engine

Requirements

Before you get started, make sure you have:

Usage

List Spreadsheets and Worksheets:

>>> from google_spreadsheet.api import SpreadsheetAPI
>>> api = SpreadsheetAPI(GOOGLE_SPREADSHEET_USER,
       GOOGLE_SPREADSHEET_PASSWORD, GOOGLE_SPREADSHEET_SOURCE)
>>> spreadsheets = api.list_spreadsheets()
>>> spreadsheets
[('MyFirstSpreadsheet', 'tkZQWzwHEjKTWFFCAgw'), ('MySecondSpreadsheet', 't5I-ZPGdXjTrjMefHcg'),
('MyThirdSpreadsheet', 't0heCWhzCmm9Y-GTTM_Q')]
>>> worksheets = api.list_worksheets(spreadsheets[0][1])
>>> worksheets
[('MyFirstWorksheet', 'od7'), ('MySecondWorksheet', 'od6'), ('MyThirdWorksheet', 'od4')]

Please note that in order to work with a Google Spreadsheet it must be accessible to the user who’s login credentials are provided. The GOOGLE_SPREADSHEET_SOURCE argument is used by Google to identify your application and track API calls.

Working with a Worksheet:

>>> sheet = spreadsheet.get_worksheet('tkZQWzwHEjKTWFFCAgw', 'od7')
>>> rows = sheet.get_rows()
>>> len(rows)
18
>>> row_to_update = rows[0]
>>> row_to_update['name'] = 'New Name'
>>> sheet.update_row(row_to_update)
{'name': 'New Name'...}
>>> row_to_insert = rows[0]
>>> row_to_insert['name'] = 'Another Name'
>>> row = sheet.insert_row(row_to_insert)
{'name': 'Another Name'...}
>>> sheet.delete_row(row)
>>> sheet.delete_all_rows()

Advanced Queries:

>>> sheet = spreadsheet.get_worksheet('tkZQWzwHEjKTWFFCAgw', 'od7')
>>> rows = sheet.get_rows(query='name = "Joe" and height < 175')

Or filter in memory:

>>> sheet = spreadsheet.get_worksheet('tkZQWzwHEjKTWFFCAgw', 'od7')
>>> filtered_rows = sheet.get_rows(
        filter_func=lambda row: row['status'] == "READY")

Sort:

>>> sheet = spreadsheet.get_worksheet('tkZQWzwHEjKTWFFCAgw', 'od7')
>>> rows = sheet.get_rows(order_by='column:age', reverse='true')

That’s it.

For more information about these calls, please consult the [Google Spreadsheets API Developer Guide](https://developers.google.com/google-apps/spreadsheets/).

Tests

To run the test suite please follow these steps:

  • Make sure [Nose](http://readthedocs.org/docs/nose/en/latest/) is installed: (pip install nose)

  • Create a local file named: test_settings.py with the following variables set to the relevant values: GOOGLE_SPREADSHEET_USER, GOOGLE_SPREADSHEET_PASSWORD, GOOGLE_SPREADSHEET_SOURCE, GOOGLE_SPREADSHEET_KEY, GOOGLE_WORKSHEET_KEY, COLUMN_NAME, COLUMN_UNIQUE_VALUE

  • Run nosetests

License

Copyright &copy; 2012 Yoav Aviram

See LICENSE for details.

Metadata

Release files for python-google-spreadsheet 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-google-spreadsheet 2.0.0
File Size Uploaded
python-google-spreadsheet-2.0.0.tar.gz 4.2 kB Details

Release files / python-google-spreadsheet-2.0.0.tar.gz

Download URL python-google-spreadsheet-2.0.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ab0ba21efc79d731db7cd0269080fe8caaa64cfd0d31328d4b739b2e074350a8
BLAKE2b-256 checksum
How to use checksums
64d15d2f81f82cc2a98135b5a58a1518c6b700c010140a79c6c749bd44be6671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

2.0.0 This release

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

2 release files

1.0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page