我正在使用gspread编辑我的Google工作表,但是在调用单元格名称时遇到了一些麻烦。
我使用此代码来查找并显示单词'LOCATE'在哪个单元格中:
cell_list = worksheet.findall('LOCATE')
print(cell_list)
获得结果:
[<Cell R12C1 'LOCATE'>]
我正在使用单元格'A12'进行测试,所以我看到'R12C1'代表第12行第1列我已经成功地使用以下代码写入该单元格:
worksheet.update_acell('A12', "TEST")
但是,如果我尝试使用此代码测试编辑单元格“ R12C1”,则将无法正常工作:
worksheet.update_acell('R12C1', "TEST")
有没有一种方法可以让我返回'findall'函数和'A12'样式单元格名称?
我现在正在使用它,但感觉有点草率,想知道是否有人提供任何技巧?
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
deconstruct = str(cell_list[0:1])
row_value = deconstruct[8:10]
col_value = alphabet[(int(deconstruct[11:13])-1)]
cell = col_value + row_value
worksheet.update_acell(cell, "TEST")
这个答案怎么样?
[当我看到the script of gspread时,findall
使用Sheets API的sheets.values.get方法检索工作表的值,并从检索到的值(二维数组)中搜索值。因此,在这种情况下,像元的坐标将作为R1C1类型返回。如果您想检索A1Notation,我认为您的脚本可能会有用。
为了使用findall
检索的值,如果您想使脚本更简单,如何使用update_cell
或update_cells
而不是update_acell
?在这种情况下,示例脚本如下。
在以下示例脚本中,它假定工作表具有一个包含LOCATE
值的单元格。
在此模式下,从cell_list
中检索像元坐标。
cell_list = worksheet.findall('LOCATE')
value = cell_list[0]
worksheet.update_cell(value.row, value.col, 'TEST')
在此模式下,更新由findall
检索的单元格。
cell_list = worksheet.findall('LOCATE')
cell_list[0].value = 'TEST'
worksheet.update_cells(cell_list)
如果我误解了你的问题,而这不是你想要的方向,我深表歉意。