将值插入 Google 表格中的第一个空行



尝试运行一个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

相关内容

最新更新