尝试运行一个python函数,该函数会将一些值插入电子表格的第一个空行中。我不知道如何找到第一个空行并将数据插入其中。
这是我的代码示例:
scope = ["https://spreadsheets.google.com/feeds","https://www.googleapis.com/auth/spreadsheets","https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("creds.json", scope)
client = gspread.authorize(creds)
sheet = client.open('Payment Tracker').sheet1
data = sheet.get_all_records()
today = datetime.today().strftime('%m-%d-%Y')
insertRow = ['Person','1000',today,'Bank']
row = sheet.row_values(4)
sheet.insert_row(row, 2)
我相信你的目标如下。
- 您想使用 gspread 和 python 将
insertRow
的值放在工作表中的第一个空行。
为此,这个答案怎么样?
模式 1:
在此模式中,使用append_row
。在这种情况下,这些值将放在工作表的最后一行。
修改后的脚本:
请按如下方式修改您的脚本。
从:row = sheet.row_values(4)
sheet.insert_row(row, 2)
自:sheet.append_row(insertRow, value_input_option='USER_ENTERED')
模式 2:
在此模式中,值被放入工作表的第一个空行。在这种情况下,当数据范围为"A3:A3"下的空行为"A1:A5"时,该值将放入第 3 行。
修改后的脚本:
请按如下方式修改您的脚本。
从:data = sheet.get_all_records()
today = datetime.today().strftime('%m-%d-%Y')
insertRow = ['Person','1000',today,'Bank']
row = sheet.row_values(4)
sheet.insert_row(row, 2)
自:data = sheet.get_all_values()
row = 0
for i, r in enumerate(data):
if all([c == '' for c in r]) is True:
row = i + 1
break
today = datetime.today().strftime('%m-%d-%Y')
insertRow = ['Person', '1000', today, 'Bank']
spreadsheet.values_update('A' + str(row), params={'value_input_option': 'USER_ENTERED'}, body={'values': [insertRow]})
引用:
- append_row
- values_update