Search This Blog

Working with Google Sheets API

 

📡 Working with the Google Sheets API in Python

Google Sheets is a powerful and collaborative spreadsheet tool—and with Python, you can automate it like a pro. Whether you're syncing data, building dashboards, or logging events, the Google Sheets API makes it easy to interact with spreadsheets in real time.

In this post, you’ll learn how to:

✅ Authenticate with Google Sheets
✅ Read and write data
✅ Append rows and update specific cells
✅ Automate Sheets like a database


🧰 What You’ll Need

  • Python 3.x

  • A Google account

  • The following Python libraries:

    • gspread

    • oauth2client

Install Required Libraries

pip install gspread oauth2client

🔐 Step 1: Set Up Google Sheets API Access

  1. Go to the Google Cloud Console

  2. Create a new project (or use an existing one)

  3. Enable the Google Sheets API and Google Drive API

  4. Go to APIs & Services > Credentials

  5. Create a Service Account

  6. Download the JSON key file (keep this safe!)


📁 Step 2: Share Your Sheet with the Service Account

Open your Google Sheet and click Share.
Paste the email address from your service account (e.g., example@myproject.iam.gserviceaccount.com) and grant edit access.


💻 Step 3: Authenticate and Connect

import gspread
from oauth2client.service_account import ServiceAccountCredentials

# Define scope
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]

# Load credentials
creds = ServiceAccountCredentials.from_json_keyfile_name("credentials.json", scope)

# Authorize client
client = gspread.authorize(creds)

# Open the sheet by name
sheet = client.open("MyDataSheet").sheet1

📥 Reading Data

Read All Values

data = sheet.get_all_records()
print(data)

Read a Specific Cell

value = sheet.cell(2, 3).value  # Row 2, Column 3
print("Cell (2,3):", value)

📤 Writing and Appending Data

Update a Cell

sheet.update_cell(2, 3, "Updated Value")

Append a New Row

new_row = ["2025-04-16", "Widget A", 12, 240]
sheet.append_row(new_row)

🔄 Using Google Sheets as a Simple Database

# Search for a row by value
cell = sheet.find("Widget A")
print(f"Found in row {cell.row}, column {cell.col}")

# Update the quantity
sheet.update_cell(cell.row, 3, 15)  # New quantity

📊 Tip: Create a New Sheet or Worksheet

# Create a new sheet in your drive
new_sheet = client.create("AutoGeneratedSheet")

# Share it with your email
new_sheet.share("your_email@gmail.com", perm_type="user", role="writer")

✅ Summary

With just a few lines of Python, you can fully control Google Sheets:

Task Code
Read values sheet.get_all_records()
Update a cell sheet.update_cell()
Append row sheet.append_row()
Search value sheet.find()

🚀 Use Cases

  • Automate form submissions

  • Log IoT or API data

  • Build dynamic dashboards

  • Sync with databases

  • Replace manual data entry

Popular Posts