Spaces:
Sleeping
Sleeping
File size: 1,938 Bytes
4458876 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# sheets_integration.py
import os
import json
from google.oauth2.credentials import Credentials
from google.oauth2 import service_account
from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials
import pandas as pd
class SheetsManager:
def __init__(self, credentials_path, spreadsheet_id):
self.credentials_path = credentials_path
self.spreadsheet_id = spreadsheet_id
self.credentials = None
self.service = None
self.initialize_service()
def initialize_service(self):
"""Initialize Google Sheets API service"""
self.credentials = service_account.Credentials.from_service_account_file(
self.credentials_path,
scopes=['https://www.googleapis.com/auth/spreadsheets']
)
self.service = build('sheets', 'v4', credentials=self.credentials)
def append_row(self, row_data):
"""Append a row to the spreadsheet"""
try:
body = {
'values': [list(row_data.values())]
}
result = self.service.spreadsheets().values().append(
spreadsheetId=self.spreadsheet_id,
range='Sheet1!A:I', # Adjust range as needed
valueInputOption='RAW',
body=body
).execute()
return True
except Exception as e:
print(f"Error appending to sheet: {str(e)}")
return False
def get_all_requests(self):
"""Get all requests from the spreadsheet"""
try:
result = self.service.spreadsheets().values().get(
spreadsheetId=self.spreadsheet_id,
range='Sheet1!A:I' # Adjust range as needed
).execute()
return pd.DataFrame(result.get('values', []))
except Exception as e:
print(f"Error reading sheet: {str(e)}")
return None |