To use Google Sheets as a data source, you will need to install the
oauth2client Python packages. You can install this package using
pip install gspread oauth2client
Application Default Credentials (Recommended)#
The easiest way to authenticate with Google Sheets is to use Application Default Credentials. If you are running marimo on Google Cloud and your resource has a service account attached, then Application Default Credentials will automatically be used. If you are running marimo locally, you can authenticate with Application Default Credentials by running the following command:
gcloud auth application-default login
Service Account Key File#
To authenticate with Google Sheets, you will need to create a service account and download the service account key file. You can create a service account and download the key file by following the instructions here.
Once you have downloaded the key file, you can authenticate with Google Sheets by setting the
GOOGLE_APPLICATION_CREDENTIALS environment variable to the path of the key file:
To read data from Google Sheets, you will need to authenticate and create a
gspread.Client. You can then use this object to read data from Google Sheets.
# Cell 1 - Load libraries import marimo as mo import pandas as pd import os import gspread from oauth2client.service_account import ServiceAccountCredentials # Authenticate with Google Sheets scope = [ "https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive", ] credentials = ServiceAccountCredentials.from_json_keyfile_name( os.environ["GOOGLE_APPLICATION_CREDENTIALS"], scope ) gc = gspread.authorize(credentials) # Cell 2 - Load the sheet wks = gc.open("marimo").sheet1 mo.ui.table(pd.DataFrame(wks.get_all_records()))
Check out our full example using Google Sheets here
Or run it yourself:
marimo run https://raw.githubusercontent.com/marimo-team/marimo/main/examples/integrations/google_sheets.py