在 Python 中使用 Smartsheet API 添加单元格到行

Adding cell to row using Smartsheet API in Python

我正在尝试向 Smartsheet 中的 sheet 添加新行。 我遍历 sheet 以找到具有 header“文档类型”的 ColumnId,创建一个新单元格 object 并将 .columnId 属性 设置为这个找到的 ID。出于某种原因,我收到一条错误消息“您的请求中缺少必需的 object 属性:cell.columnId。”

请看下面的输出!我的 cell.columnId 是 int 类型,匹配“文档类型”header.

的 columnId

谢谢。

import smartsheet

smartsheet_client = smartsheet.Smartsheet(access_token)
sheet = smartsheet_client.Sheets.get_sheet(sheetID)

for column in sheet.columns:
    if column.title == "Document Type":
        thisColumn = column.id

newRow = smartsheet_client.models.Row()
newCell = smartsheet_client.models.Cell()
newCell.columnID = thisColumn
newCell.displayValue = 'Test'
print("newCell.columnID ==", newCell.columnID)
print("type(newCell.columnID) ==", type(newCell.columnID))
print()
newRow.cells.append(newCell)
smartsheet_client.Sheets.add_rows(sheetID, newRow)

当我 运行 这段代码时,我得到以下输出 + 错误。

newCell.columnID == 7729112579106692
type(newCell.columnID) == <class 'int'>

{"response": {"statusCode": 400, "reason": "Bad Request", "content": {"detail": {"index": 0}, "errorCode": 1012, "message": "Required object attribute(s) are missing from your request: cell.columnId.", "refId": "vrktl1049bea"}}}

看起来下面的代码将实现您描述的目标。它在指定的 sheet 中创建一个新行,并用值 [=11] 填充该新行中的单个单元格(即 文档类型 列中的单元格) =].

sheet = smartsheet_client.Sheets.get_sheet(sheetID)

for column in sheet.columns:
    if column.title == "Document Type":
        thisColumn = column.id

# Define cell object (for the value in the 'Document Type' column) 
newCell = smartsheet_client.models.Cell({
    'column_id': thisColumn,
    'object_value': 'Test'
})

# Create row that contains the cell value defined previously
row = smartsheet_client.models.Row({
    'cells': [newCell]
})

# Add row to sheet
result = smartsheet_client.Sheets.add_rows(sheetID, [row])

这一行

newCell.columnID = thisColumn

应该是:

newCell.column_id = thisColumn

此外,而不是

newCell.displayValue = 'Test'

您可能想使用

newCell.value = 'Test'

您可以找到此 here

的特定文档