找到的单元格名称与 Google 工作表中的单元格名称不同

Found cell name isn't the same as the on in Google sheets

我正在使用 gspread 编辑我的 google sheet 但我在调用单元格名称时遇到了一些问题。


我使用此代码查找并显示单词 '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' 函数 return 和 '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的spreadsheets.values.get方法检索sheet的值,并搜索该值来自检索到的值,它是一个二维数组。所以在这种情况下,单元格的坐标作为 R1C1 类型返回。如果您想检索 A1Notation,我认为您的脚本会很有用。

为了使用findall检索到的值,如果你想让脚本更简单,用update_cellupdate_cells代替[=16=怎么样? ]?在这种情况下,示例脚本如下。

示例脚本:

在下面的示例脚本中,假设作品sheet 有一个单元格包含 LOCATE 的值。

模式 1:

在此模式中,单元格坐标是从 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)

注:

  • 这些示例脚本假定您已经能够使用 gspread 为 Spreadsheet 设置和获取值。

参考文献:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。