我正在使用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")
答案 0 :(得分:0)
这个答案怎么样?
当我看到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)
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。