Skip to content
Python library to interact with Google Sheets V4 API
Python Makefile
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
documentation Merge branch 'master' into max-row-column Nov 6, 2019
sheetfu 1.5.0 Nov 6, 2019
tests
.gitignore feat(Service): Load service with env variables if they exist May 14, 2019
.travis.yml Documentation and python 3.3 removal from travis (#28) Oct 7, 2019
AUTHORS 0.01 dev version Aug 24, 2018
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#6) Sep 23, 2018
CONTRIBUTING.rst docs(CI): Add documentation on semantic releases Mar 18, 2019
LICENSE
Makefile Documentation (#4) Sep 22, 2018
README.rst Removed the commit mention in example. Jan 8, 2020
requirements_dev.txt feat(Table): Add 'get_table_from_sheet' option Apr 1, 2019
setup.cfg fix(CI): Fixed semantic releases Mar 13, 2019
setup.py

README.rst

Sheetfu

https://travis-ci.org/socialpoint-labs/sheetfu.svg?branch=master

Sheetfu was built to interacts with Google Sheets with a simple, intuitive, and fast API. The primary goal of this library is to adapt the Google App Script API for spreadsheets, to Python. With Sheetfu, you can easily get or set cell values, background colors, font colors or any other cell attributes.

Installing

Install and update using pip:

pip install -U Sheetfu

A Simple Example

from sheetfu import SpreadsheetApp

spreadsheet = SpreadsheetApp('path/to/secret.json').open_by_id('<insert spreadsheet id here>')
# if ENV vars are defined, you can do initialize it with:
# spreadsheet = SpreadsheetApp(from_env=True).open_by_id('<insert spreadsheet id here>')

sheet = spreadsheet.get_sheet_by_name('Sheet1')
data_range = sheet.get_data_range()           # returns the sheet range that contains data values.

# this is how you get things
values = data_range.get_values()              # returns a 2D matrix of values.
backgrounds = data_range.get_backgrounds()    # returns a 2D matrix of background colors in hex format.

# this is how you set things
data_range.set_background('#000000')          # set every cell backgrounds to black
data_range.set_font_color('#ffffff')          # set every cell font colors to white

To obtain your secret json file and know more about how to initialize your ENV vars, you can refer to the authentication tutorial.

You can refer to the sheetfu API documentation for a more detailed description.

The Table module

Sheetfu also contains a table module that abstracts completely the coordinates system for an ORM-like syntax. The example below is for a sheet with the 3 columns 'name', 'surname' and 'age'.

from sheetfu import Table

spreadsheet = SpreadsheetApp('path/to/secret.json').open_by_id('<insert spreadsheet id here>')
# if ENV vars are defined, you can do initialize it with:
# spreadsheet = SpreadsheetApp(from_env=True).open_by_id('<insert spreadsheet id here>')

data_range = spreadsheet.get_sheet_by_name('people').get_data_range()

table = Table(data_range, backgrounds=True)

for item in table:
    if item.get_field_value('name') == 'foo':
        item.set_field_value('surname', 'bar')              # this set the surname field value
    age = item.get_field_value('age')
    item.set_field_value('age', age + 1)
    item.set_field_background('age', '#ff0000')             # this set the field 'age' to red color

# Every set functions are batched for speed performance.
# To send the batch update of every set requests you made,
# you need to commit the table object as follow.
table.commit()

Contributing

For guidance on how to make a contribution to Sheetfu, see the contributing guidelines.

Links

If you are looking for the original sheetfu google apps script library, it has been relocated to this page.

You can’t perform that action at this time.