All Projects → burnash → Gspread

burnash / Gspread

Licence: mit
Google Sheets Python API

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Gspread

use-google-sheets
📝 A React Hook for getting data from Google Sheets API v4
Stars: ✭ 75 (-98.68%)
Mutual labels:  google-sheets, google-sheets-api, google-sheets-api-v4
xivraidteam
discord と連携して ロット管理、スケジュール管理 を自動化した FF14 零式 固定管理用スプレッドシート
Stars: ✭ 20 (-99.65%)
Mutual labels:  spreadsheet, spreadsheets
Googlesheets4
Google Spreadsheets R API (reboot of the googlesheets package)
Stars: ✭ 232 (-95.91%)
Mutual labels:  spreadsheet, google-sheets
sheetful
The sheetiest REST API on the block.
Stars: ✭ 65 (-98.85%)
Mutual labels:  google-sheets, google-sheets-api
Google Sheet S3
Google Apps Script that publishes a Google Sheet to Amazon S3 as a JSON file. Auto-updates on edit & maintains data types. Creates an array of objects keyed by column header.
Stars: ✭ 81 (-98.57%)
Mutual labels:  spreadsheet, google-sheets
Importjson
Import JSON into Google Sheets, this library adds various ImportJSON functions to your spreadsheet
Stars: ✭ 1,705 (-69.96%)
Mutual labels:  spreadsheet, google-sheets
HTML-templating-with-Google-Apps-Script
Use data from your spreadsheets to build a webpage or a client-side app ✨
Stars: ✭ 55 (-99.03%)
Mutual labels:  spreadsheet, google-sheets
xivtlsheet
ACT、FFLogsを使い、FF14 零式コンテンツのタイムラインスプレッドシートを作成
Stars: ✭ 39 (-99.31%)
Mutual labels:  spreadsheet, spreadsheets
lc-spreadsheets
Tidy data for librarians
Stars: ✭ 17 (-99.7%)
Mutual labels:  spreadsheet, spreadsheets
react-google-sheet
Pulling data from Google Sheets with React components
Stars: ✭ 24 (-99.58%)
Mutual labels:  google-sheets, spreadsheets
Pygsheets
Google Sheets Python API v4
Stars: ✭ 1,116 (-80.34%)
Mutual labels:  spreadsheet, google-sheets
discord2sheet-bot
Discord bot that stores messages to Google Sheet.
Stars: ✭ 40 (-99.3%)
Mutual labels:  google-sheets, google-sheets-api-v4
Cuba
🇨🇺 Google Sheets + SQL = JSON
Stars: ✭ 45 (-99.21%)
Mutual labels:  spreadsheet, google-sheets
Robinhood Google Sheets
Robinhood Custom Functions for Google Sheets 📈
Stars: ✭ 117 (-97.94%)
Mutual labels:  spreadsheet, google-sheets
Luckysheet
Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.
Stars: ✭ 9,772 (+72.16%)
Mutual labels:  spreadsheet, google-sheets
Mintable
🍃 Automate your personal finances – for free, with no ads, and no data collection.
Stars: ✭ 849 (-85.04%)
Mutual labels:  spreadsheet, google-sheets
Ce
Jspreadsheet is a lightweight vanilla javascript plugin to create amazing web-based interactive tables and spreadsheets compatible with other spreadsheet software.
Stars: ✭ 5,832 (+2.75%)
Mutual labels:  spreadsheet, spreadsheets
Googlesheets
Google Spreadsheets R API
Stars: ✭ 771 (-86.42%)
Mutual labels:  spreadsheet, google-sheets
BakingSheet
Easy datasheet management for C# and Unity. Supports Excel, Google Sheet, JSON and CSV format.
Stars: ✭ 144 (-97.46%)
Mutual labels:  spreadsheet, google-sheets
sheets-database
Library to help use a Google Sheet as a database
Stars: ✭ 36 (-99.37%)
Mutual labels:  google-sheets, spreadsheets

Google Spreadsheets Python API v4

latest workflow GitHub version doc

Simple interface for working with Google Sheets.

Features:

  • Open a spreadsheet by title, key or url.
  • Read, write, and format cell ranges.
  • Sharing and access control.
  • Batching updates.

Installation

pip install gspread

Requirements: Python 3.6+.

Basic Usage

  1. Create credentials in Google API Console

  2. Start using gspread:

import gspread

gc = gspread.service_account()

# Open a sheet from a spreadsheet in one go
wks = gc.open("Where is the money Lebowski?").sheet1

# Update a range of cells using the top left corner address
wks.update('A1', [[1, 2], [3, 4]])

# Or update a single cell
wks.update('B42', "it's down there somewhere, let me take another look.")

# Format the header
wks.format('A1:B1', {'textFormat': {'bold': True}})

More Examples

Opening a Spreadsheet

# You can open a spreadsheet by its title as it appears in Google Docs
sh = gc.open('My poor gym results') # <-- Look ma, no keys!

# If you want to be specific, use a key (which can be extracted from
# the spreadsheet's url)
sht1 = gc.open_by_key('0BmgG6nO_6dprdS1MN3d3MkdPa142WFRrdnRRUWl1UFE')

# Or, if you feel really lazy to extract that key, paste the entire url
sht2 = gc.open_by_url('https://docs.google.com/spreadsheet/ccc?key=0Bm...FE&hl')

Creating a Spreadsheet

sh = gc.create('A new spreadsheet')

# But that new spreadsheet will be visible only to your script's account.
# To be able to access newly created spreadsheet you *must* share it
# with your email. Which brings us to…

Sharing a Spreadsheet

sh.share('[email protected]', perm_type='user', role='writer')

Selecting a Worksheet

# Select worksheet by index. Worksheet indexes start from zero
worksheet = sh.get_worksheet(0)

# By title
worksheet = sh.worksheet("January")

# Most common case: Sheet1
worksheet = sh.sheet1

# Get a list of all worksheets
worksheet_list = sh.worksheets()

Creating a Worksheet

worksheet = sh.add_worksheet(title="A worksheet", rows="100", cols="20")

Deleting a Worksheet

sh.del_worksheet(worksheet)

Getting a Cell Value

# With label
val = worksheet.get('B1').first()

# With coords
val = worksheet.cell(1, 2).value

Getting All Values From a Row or a Column

# Get all values from the first row
values_list = worksheet.row_values(1)

# Get all values from the first column
values_list = worksheet.col_values(1)

Getting All Values From a Worksheet as a List of Lists

list_of_lists = worksheet.get_values()

Finding a Cell

# Find a cell with exact string value
cell = worksheet.find("Dough")

print("Found something at R%sC%s" % (cell.row, cell.col))

# Find a cell matching a regular expression
amount_re = re.compile(r'(Big|Enormous) dough')
cell = worksheet.find(amount_re)

Finding All Matched Cells

# Find all cells with string value
cell_list = worksheet.findall("Rug store")

# Find all cells with regexp
criteria_re = re.compile(r'(Small|Room-tiering) rug')
cell_list = worksheet.findall(criteria_re)

Updating Cells

# Update a single cell
worksheet.update('B1', 'Bingo!')

# Update a range
worksheet.update('A1:B2', [[1, 2], [3, 4]])

# Update multiple ranges at once
worksheet.batch_update([{
    'range': 'A1:B2',
    'values': [['A1', 'B1'], ['A2', 'B2']],
}, {
    'range': 'J42:K43',
    'values': [[1, 2], [3, 4]],
}])

Documentation

Contributors

How to Contribute

Please make sure to take a moment and read the Code of Conduct.

Ask Questions

The best way to get an answer to a question is to ask on Stack Overflow with a gspread tag.

Report Issues

Please report bugs and suggest features via the GitHub Issues.

Before opening an issue, search the tracker for possible duplicates. If you find a duplicate, please add a comment saying that you encountered the problem as well.

Improve Documentation

Documentation is as important as code. If you know how to make it more consistent, readable and clear, please submit a pull request. The documentation files are in docs folder, use reStructuredText markup and rendered by Sphinx.

Contribute code

Please make sure to read the Contributing Guide before making a pull request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].