Last active
July 9, 2021 04:38
-
-
Save hakanu/be6098447e4d74d26eca to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
"""Utility methods for Google Spreadsheets based on gspread library. | |
Used mostly for logging. | |
http://hakanu.net/2014/09/14/how-i-store-server-logs-in-google-spreadsheets/ | |
Here are the dependecies: | |
sudo apt-get install python-pip python-dev build-essential | |
sudo easy_install gspread | |
""" | |
__author__ = 'hakan_uysal@ymail.com' | |
import string | |
from timeit import default_timer as timer | |
import gspread | |
class SpreadOperations: | |
def __init__(self, username, password, spreadsheet_name, | |
worksheet_name='Sheet1'): | |
# Login with your Google account | |
gc = gspread.login(username, password) | |
# Open a worksheet from spreadsheet with one shot | |
self.worksheet = gc.open(spreadsheet_name).worksheet(worksheet_name) | |
def InsertRow(self, row_values): | |
start = timer() | |
self.worksheet.append_row(row_values) | |
end = timer() | |
print 'Completed in ', (end - start) * 1000, ' ms.' | |
def InsertRows(self, rows): | |
start = timer() | |
row_count = self.worksheet.row_count | |
col_count = self.worksheet.col_count | |
self.worksheet.add_rows(len(rows)) | |
# Example cell range: 'A2:Y4'. | |
cell_range = (string.ascii_uppercase[0] + str(row_count + 1) + | |
':' + string.ascii_uppercase[col_count - 1] + | |
str(row_count + len(rows))) | |
cell_list = self.worksheet.range(cell_range) | |
row_counter = 0 | |
col_counter = 0 | |
for cell in cell_list: | |
if row_counter < len(rows) and col_counter < len(rows[row_counter]): | |
cell.value = rows[row_counter][col_counter] | |
else: | |
cell.value = '' # Fill up rows with empty str. | |
col_counter += 1 | |
if col_counter >= col_count: | |
row_counter += 1 | |
col_counter = 0 | |
self.worksheet.update_cells(cell_list) | |
end = timer() | |
print 'Completed in ', (end - start) * 1000, ' ms.' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment