スコットが言ったように、シートは大量のデータを返す可能性があるため、フィルターは慎重に使用してください。以下は、各行に 1 つの列だけを 2 行ずつプルするように記述したコードの例です。
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