Spaces:
Sleeping
Sleeping
import os | |
from google.oauth2 import service_account | |
from googleapiclient.discovery import build | |
import streamlit as st | |
import gspread | |
from google.oauth2.service_account import Credentials | |
import pandas as pd | |
def get_google_sheet_data(sheet_id, range_name): | |
creds = service_account.Credentials.from_service_account_info( | |
st.secrets["gcp_service_account"], | |
scopes=["https://www.googleapis.com/auth/spreadsheets.readonly"], | |
) | |
service = build("sheets", "v4", credentials=creds) | |
sheet = service.spreadsheets() | |
result = sheet.values().get(spreadsheetId=sheet_id, range=range_name).execute() | |
values = result.get("values", []) | |
return pd.DataFrame(values[1:], columns=values[0]) | |
def update_google_sheet(sheet_id, range_name, data): | |
try: | |
creds = service_account.Credentials.from_service_account_info( | |
st.secrets["gcp_service_account"], | |
scopes=["https://www.googleapis.com/auth/spreadsheets.readonly"], | |
) | |
client = gspread.authorize(creds) | |
sheet = client.open_by_key(sheet_id).worksheet(range_name.split("!")[0]) | |
data_to_update = [data.columns.tolist()] + data.values.tolist() | |
sheet.clear() | |
sheet.update(range_name, data_to_update) | |
st.success("Data successfully updated in the Google Sheet!") | |
except Exception as e: | |
st.error(f"Error updating Google Sheet: {e}") |