在 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
的特定文档
我正在尝试向 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
的特定文档