mali / sheets.py
babaTEEpe's picture
Upload 6 files
f64b6e2 verified
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
import re
def get_sheets_service(user_token):
creds = Credentials(**user_token)
return build('sheets', 'v4', credentials=creds)
def extract_spreadsheet_id(url):
"""Extracts the spreadsheet ID from a Google Sheets URL."""
match = re.search(r"/d/([a-zA-Z0-9-_]+)", url)
return match.group(1) if match else None
def get_sheet_data(service, spreadsheet_id, range_name="Sheet1!A:Z"):
"""Fetches all data from a specific range in a Google Sheet."""
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=spreadsheet_id, range=range_name).execute()
values = result.get('values', [])
if not values:
return []
# First row is headers
headers = values[0]
data = []
for row in values[1:]:
# Map row values to headers
item = {}
for i, header in enumerate(headers):
if i < len(row):
item[header] = row[i]
else:
item[header] = ""
data.append(item)
return data