Google Sheets
sheets writer allows you to save GarfReport to Google Sheets.
Important
To save data to Google Sheets install garf-io with Google Sheets support
pip install garf-io[sheets]
garf uses gspread to write data to
Google Sheets needs to be configured.
garf query.sql --source API_SOURCE \
--output sheets
from garf.core import report
from garf.io.writers import sheets_writer
# Create example report
sample_report = report.GarfReport(results=[[1]], column_names=['one'])
writer = sheets_writer.SheetsWriter()
writer.write(sample_report, 'query')
Parameters
spreadsheet_url
By default reports are saved to a new spreadsheet.
You can overwrite it with spreadsheet_url parameter.
garf query.sql --source API_SOURCE \
--output sheets \
--sheets.spreadsheet_url=SPREADSHEET_URL
from garf.core import report
from garf.io.writers import sheets_writer
# Create example report
sample_report = report.GarfReport(results=[[1]], column_names=['one'])
writer = sheets_writer.SheetsWriter(spreadsheet_url=SPREADSHEET_URL)
writer.write(sample_report, 'query')
share_with
If you want to share created or existing spreadsheet, you can specify email(s)
via share_with parameter.
garf query.sql --source API_SOURCE \
--output sheets \
--sheets.share_with=your@email.com
from garf.core import report
from garf.io.writers import sheets_writer
# Create example report
sample_report = report.GarfReport(results=[[1]], column_names=['one'])
writer = sheets_writer.SheetsWriter(share_with='your@email.com')
writer.write(sample_report, 'query')
is_append
By default new report overwrites old report in worksheets.
You can adjust this behaviour with is_append parameter.
garf query.sql --source API_SOURCE \
--output sheets \
--sheets.is_append
from garf.core import report
from garf.io.writers import sheets_writer
# Create example report
sample_report = report.GarfReport(results=[[1]], column_names=['one'])
writer = sheets_writer.SheetsWriter(is_append=True)
writer.write(sample_report, 'query')
credentials_file
garf uses gspread to write data to
Google Sheets which expects credentials file in ~/.config/gspread folder.
You can adjust it via credentials_file parameter.
garf query.sql --source API_SOURCE \
--output sheets \
--sheets.credentials_file=/path/to/credentials.json
from garf.core import report
from garf.io.writers import sheets_writer
# Create example report
sample_report = report.GarfReport(results=[[1]], column_names=['one'])
writer = sheets_writer.SheetsWriter(credentials_file='/path/to/credentials.json')
writer.write(sample_report, 'query')
auth_mode
By default garf will try to authenticate with user credentials
You can overwrite it via auth_mode parameter (which can be either oauth or service_account)
garf query.sql --source API_SOURCE \
--output sheets \
--sheets.auth_mode=service_account
from garf.core import report
from garf.io.writers import sheets_writer
# Create example report
sample_report = report.GarfReport(results=[[1]], column_names=['one'])
writer = sheets_writer.SheetsWriter(auth_mode='service_account')
writer.write(sample_report, 'query')