Skip to content

odwyersoftware/sheet2api-python

Repository files navigation

sheet2api-python

Google/Excel Sheets API Python Client. For use with https://sheet2api.com/

https://sheet2api.com/excel-sheet-python/

Build Status PyPI version

Installation

Install using pip...

pip install sheet2api

Usage Examples

Before starting you should head over to sheet2api.com and link up your Google Sheets or Excel Online account and create your first Spreadsheet API.

Next, create an instance of the client and pass in the API URL to your API.

from sheet2api import Sheet2APIClient

client = Sheet2APIClient(api_url='https://sheet2api.com/v1/FgI6zV8qT222/my-api/')
# If your API has authentication enabled
client = Sheet2APIClient(
    api_url='https://sheet2api.com/v1/FgI6zV8qT222/my-api/',
    username='api_username_here',
    password='api_password_here',
)

Get all rows

Returns all rows within the first Sheet of your Spreadsheet.

client.get_rows()

# Returns a list of dicts
[{
	'name': 'Bob',
	'age': 22
}, {
	'name': 'Richard',
	'age': 19
}, {
	'name': 'Bob Jones',
	'age': 99
}]

To return rows from a specific Sheet.

client.get_rows(sheet='Sheet1')

Get all rows matching a query

Returns all rows matching a query.

client.get_rows(query={'name': 'Bob'})

Create a new row

client.create_row(sheet='Sheet1', row={'name': 'Jane','age': 18})

Update all rows which match a query

This will update the entire row for the matches, if you fail to specificy all column values in the replacement row, those cells will be filled with an empty value.

client.update_rows(
    sheet='Sheet1',
    query={'name': 'Philip'},
    row={
        'name': 'Phil',
        'age': 99999
    },
)

Partially update rows matching a query.

This will only update the columns which you provide replacement values for in the row dict parameter. All other columns will be left unchanged.

client.update_rows(
    sheet='Sheet1,
    query={'name': 'Philip'},
    row={
        'age': 99999
    },
    partial_update=True,
)

Delete all rows matching a query

client.delete_rows(sheet='Sheet1', query={'name': 'Satan'})

Support

Contact support