Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn
Source Code:
from Google import Create_Service
def run_batchUpdate_request(service, google_sheet_id, request_body_json):
try:
response = service.spreadsheets().batchUpdate(
spreadsheetId=google_sheet_id,
body=request_body_json
).execute()
return response
except Exception as e:
print(e)
return None
CLIENT_SECRET_FILE = '<CLIENT FILE DIR>'
API_SERVICE_NAME = 'sheets'
API_VERSION = 'v4'
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
GOOGLE_SHEET_ID = '<GOOGLE SHEETS ID>'
service = Create_Service(CLIENT_SECRET_FILE, API_SERVICE_NAME, API_VERSION, SCOPES)
gsheets = service.spreadsheets().get(spreadsheetId=GOOGLE_SHEET_ID).execute()
sheets = gsheets.get('sheets')
"""
Deleter master worksheet
"""
master_sheet_id = [sheet['properties']['sheetId'] for sheet in sheets if sheet['properties']['title'] == 'master']
if master_sheet_id:
delete_sheet_request = {
'requests': [
{
'deleteSheet': {
'sheetId': master_sheet_id[0]
}
}
]
}
run_batchUpdate_request(service, GOOGLE_SHEET_ID, delete_sheet_request)
"""
Create master sheet
"""
add_master_sheet_request = {
'requests': [
{
'addSheet': {
'properties': {
'title': 'master'
}
}
}
]
}
run_batchUpdate_request(service, GOOGLE_SHEET_ID, add_master_sheet_request)
"""
To combine datasets from worksheets
"""
rows = []
for sheet in sheets:
if sheet['properties']['title'] != 'master':
dataset = service.spreadsheets().values().get(
spreadsheetId=GOOGLE_SHEET_ID,
range=sheet['properties']['title'],
majorDimension='ROWS'
).execute()
rows.extend(dataset['values'][1:])
columns = dataset['values'][0]
rows.insert(0, columns)
service.spreadsheets().values().update(
spreadsheetId=GOOGLE_SHEET_ID,
valueInputOption='USER_ENTERED',
range='master!A1',
body={'majorDimension': 'ROWS', 'values': rows}
).execute()
