Как обновлять Google лист с новым результатом каждый раз, когда запускается скрипт Python?

У меня есть скрипт Python при каждом запуске, он возвращает новое значение. Затем мне нужно добавить эти значения в лист Google. Таким образом, каждый день результаты сценариев будут добавляться в новую строку. Я пытался использовать "pygsheet" lib, но не могу обработать добавление в новую строку для каждого дня. Как я могу добавить данные в последнюю пустую строку?

4 ответа

Решение

Есть несколько способов добиться этого с помощью листов. insert_rows можно добиться этого в одну строку.

wks.insert_rows(wks.rows, values=[daily_value], inherit=True) # here wks is the worksheet object

Если вы не хотите добавлять новую строку или хотите добавить значение в не последнюю строку, вы можете использовать append_tableПредполагая, что это единственные данные в таблице. Здесь вы должны убедиться, что на вашем листе достаточно строк, чтобы соответствовать новому значению.

wks.append_table(values=[daily_value])

Сначала получите все значения в электронной таблице. Вам необходимо указатьinclude_tailing_empty_rows а также include_tailing_empty в качестве False, так что пустые строки не будут включены в подсчет

new_row = ['firstname', 'lastname', 'Email', 'Number']
worksheet = gc.open('Sign Up').sheet1
cells = worksheet.get_all_values(include_tailing_empty_rows=False, include_tailing_empty=False, returnas='matrix')
last_row = len(cells)
worksheet = worksheet.insert_rows(last_row, number=1, values= new_row)

insert_rows добавляет список "new_row" в позицию сразу после "last_row".

Вы можете проверить другие атрибуты worksheetздесь https://pygsheets.readthedocs.io/en/stable/worksheet.html

      # Connect with Google Sheet
# pip install pygsheets 
# append data on google sheet with existing data Final working
import pygsheets
import pandas as pd

#Change Path : excel file path
df=pd.read_excel(r"C:\Users\Ankur\Desktop\Google Sheet\CET Not Open.xlsx")
#Change Path : Your Key File Path Json file for Google Sheet API
path=r'C:\Users\Ankur\Desktop\Google Sheet\our-brand-301715-306ddc60d5ce.json'
gc = pygsheets.authorize(service_account_file=path)
# Change Sheet Name : PythonDB to your googlesheet name
sh=gc.open("PythonDB")
wk1=sh[0]
cells = wk1.get_all_values(include_tailing_empty_rows=None, include_tailing_empty=False, returnas='matrix')
last_row = len(cells)
if last_row>1:
    wk1.set_dataframe(df,(last_row+1,1))
    wk1.delete_rows(last_row+1)
else:
    wk1.set_dataframe(df,(1,1))
print("Data inserted successfully....")

Следующий фрагмент кода добавит данные в последнюю непустую строку.

      #open the google spreadsheet 
sh = gc.open('name of the google sheet')

#select the first sheet 
wks = sh[0]

#retrieve all rows of the worksheet
cells = wks.get_all_values(include_tailing_empty_rows=False, include_tailing_empty=False, returnas='matrix')

#extract all non empty rows
nonEmptyRows = []
for i in cells:
    if i != []:
        nonEmptyRows.append(i)

#calculating the length 
countOfnonEmptyRows = len(nonEmptyRows)
type(countOfnonEmptyRows)

#defining the data
ls = ['G', 'H', 'I']


#inserting data 
wks.insert_rows(countOfnonEmptyRows, values=ls, inherit=True) # here wks is the worksheet object
Другие вопросы по тегам