正如 Scott 所说,一张工作表可能会返回大量数据,因此请确保您明智地使用过滤器。这是我编写的一些代码示例,用于提取两行但每行只有一列:
action = smartsheet.Sheets.get_sheet(SHEET_ID, column_ids=COL_ID, row_numbers="2,4")
可以在此处找到有关可用过滤器的详细信息。
更新:添加了更多代码以遵循网站礼仪并提供完整的答案。
我在学习 API 时做的第一件事是显示我的所有工作表及其对应的 sheetId 的列表。
action = MySS.Sheets.list_sheets(include_all=True)
for single_sheet in action.data:
print single_sheet.id, single_sheet.name
从该列表中,我确定了要从中提取数据的工作表的 sheetId。在我的示例中,我实际上需要提取主列,因此我使用此代码来确定主列的 Id(并将非主列 Id 保存在列表中,因为当时我认为我可能需要它们) :
PrimaryCol = 0
NonPrimaryCol = []
MyColumns = MySS.Sheets.get_columns(SHEET_ID)
for MyCol in MyColumns.data:
if MyCol.primary:
print "Found primary column", MyCol.id
PrimaryCol = MyCol.id
else:
NonPrimaryCol.append(MyCol.id)
最后,请记住检索整个工作表可能会返回大量数据,我使用过滤器仅返回主列中的数据:
MySheet = MySS.Sheets.get_sheet(SHEET_ID, column_ids=PrimaryCol)
for MyRow in MySheet.rows:
for MyCell in MyRow.cells:
print MyRow.id, MyCell.value