我有一个Google工作表,我正在根据我在python脚本中进行的一些API调用的结果来插入/更新的值。
根据gspread文档,我目前正在从工作表中获取范围,然后更新值,然后将其写回。
但是我不在乎表中的值,我宁愿盲目地写它-为我节省了宝贵的API读取配额。
有没有一种方法可以先写入单元格而不先读取它们?
我到处搜索有同样问题的人,但找不到任何可以告诉我如何做到这一点(甚至完全可以做到)的人
当前代码:
(rowData是我之前想在gsheet中写入的python脚本中以前收集的数据)
try:
rowToUpdate = sheet.range("A"+str(index)+":Q"+str(index))
except Exception as e:
print("Couldn't fetch rowToUpdate, error message was: ")
print(repr(e))
try:
for cell, value in zip(rowToUpdate, rowData):
cell.value = value
sheet.update_cells(rowToUpdate)
理想情况下,我只会做类似的事情:
try:
for cell, value in zip(rowToUpdate, rowData):
cell.value = value
sheet.update_cells(rowToUpdate)```
答案 0 :(得分:2)
您可以使用Sheetfu库(我是作者)来完成此操作:https://github.com/socialpoint-labs/sheetfu
以下代码将仅在不首先获取值的情况下设置值:
from sheetfu import SpreadsheetApp as sa
spreadsheet = sa('path/to/secret.json').open_by_id('<insert spreadsheet id here>')
sheet = spreadsheet.get_sheet_by_name('<insert the sheet name here>')
# make sure your data is already in a 2D matrix form
input_data = [[1,2], [3,4]]
data_range = sheet.get_range(
row=1,
column=1,
number_of_row=len(input_data),
number_of_column=len(input_data[0])
)
data_range.set_values(input_data)
此代码将不查询工作表并获取当前值。只会使用您的数据设置值。