使用python在智能表中添加行

时间:2018-08-11 04:31:09

标签: smartsheet-api

如何获取值列表,遍历它以创建所需的对象,然后将该对象的“列表”传递给API以创建多行?

我已经成功使用API​​示例添加了带有值的新行。在该示例中,创建了两个对象。

row_a = ss_client.models.Row()
row_b = ss_client.models.Row()

这两个对象在添加行函数中传递。 (请原谅我,如果我使用了错误的术语。这仍然是新知识)

response = ss_client.Sheets.add_rows(
2331373580117892,       # sheet_id
[row_a, row_b])

我无法成功传递数量未知的对象,像这样。

 newRowsToCreate = []
 for row in new_rows:
     rowObject = ss.models.Row()
     rowObject.cells.append({
       'column_id': PM_columns['Row ID Master'],
       'value': row
     })
     newRowsToCreate.append(rowObject)

 # Add rows to sheet
 response = ss.Sheets.add_rows(
   OH_MkrSheetId,       # sheet_id
   newRowsToCreate)

这将返回此错误:

{"code": 1062, "errorCode": 1062, "message": "Invalid row location: You must 
use at least 1 location specifier.",

谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

从错误消息中,您似乎缺少新行的location specification

您创建的每个行对象都需要设置一个位置值。例如,如果要将新行添加到工作表的底部,则可以将此属性添加到rowObject中。

rowObject.toBottom=True

您可以了解此特定于地理位置的属性及其与Python SDK here的关系。