我正在寻找通过Smartsheet API查找工作表的方法,我所拥有的只是工作表的名称。我目前正在这样解决
sheet_name = 'The sheet I have the name of'
sheets = ss_client.Sheets.list_sheets(include_all=True).data
sheet_id = next(sheet.id for sheet in sheets if sheet.name == sheet_name)
sheet_that_I_want = ss_client.Sheets.get_sheet(sheet_id)
有一个get_sheet方法,但它基于工作表的ID。我觉得必须有一种更直接的方法来执行此操作,但是我不确定会是什么。
答案 0 :(得分:5)
表名不必是唯一的,因此没有按名称获取表的端点。
但是,您可以使用search端点按名称搜索工作表,然后筛选这些结果,这可能比遍历所有工作表要小。
sheet_name = "Demo"
search_results = ss_client.Search.search(sheet_name).results
sheet_id = next(result.object_id for result in search_results if result.object_type == 'sheet')
sheet_that_I_want = ss_client.Sheets.get_sheet(sheet_id)
print(sheet_that_I_want)
答案 1 :(得分:1)
我发现,如果我创建工作表然后搜索它,将找不到它。更新索引需要花费几秒钟。使用list_sheets似乎总是包括刚创建的一个。
答案 2 :(得分:0)
有一个 sheet_by_name 调用。
smartsheet_client = smartsheet.Smartsheet(token)
all_sheets = smartsheet.sheets.Sheets(smartsheet_client)
test_sheet = all_sheets.get_sheet_by_name("Demo")
print(testsheet.name)