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

时间:2019-10-01 01:31:53

标签: python google-sheets-api gspread

我正在使用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")

1 个答案:

答案 0 :(得分:0)

这个答案怎么样?

当我看到the script of gspread时,findall使用Sheets API的电子表格.sheets.values.get方法检索工作表的值,并从检索到的值中搜索该值,该值是二维数组。因此,在这种情况下,像元的坐标将作为R1C1类型返回。如果您想检索A1Notation,我认为您的脚本可能会有用。

为了使用由findall检索的值,如果要使脚本更简单,如何使用update_cellupdate_cells而不是update_acell?在这种情况下,示例脚本如下。

示例脚本:

在以下示例脚本中,它假定工作表中的单元格包含值LOCATE

模式1:

在此模式下,从cell_list中检索像元坐标。

cell_list = worksheet.findall('LOCATE')

value = cell_list[0]
worksheet.update_cell(value.row, value.col, 'TEST')

模式2:

在这种模式下,由findall检索的单元格将更新。

cell_list = worksheet.findall('LOCATE')

cell_list[0].value = 'TEST'
worksheet.update_cells(cell_list)

注意:

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

参考:

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