from google.oauth2.service_account import Credentials from googleapiclient.discovery import build import pandas as pd def fetch_google_sheet_data(credentials_file, sheet_id, sheet_name): """ Fetch data from Google Sheets. """ try: creds = Credentials.from_service_account_file(credentials_file, 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=sheet_name).execute() data = result.get('values', []) headers = data[0] rows = data[1:] return pd.DataFrame(rows, columns=headers) except Exception as e: return str(e) def update_google_sheet(credentials_file, sheet_id, sheet_name, df): """ Update Google Sheets with the processed data. """ try: creds = Credentials.from_service_account_file(credentials_file, scopes=["https://www.googleapis.com/auth/spreadsheets"]) service = build('sheets', 'v4', credentials=creds) sheet = service.spreadsheets() # Convert DataFrame to list of lists data = [df.columns.tolist()] + df.values.tolist() # Update the sheet body = {'values': data} sheet.values().update( spreadsheetId=sheet_id, range=sheet_name, valueInputOption="RAW", body=body ).execute() return "Google Sheet updated successfully." except Exception as e: return str(e)