如何修复:update_rows() 操作不允许使用 linksOutToCells[]
How to fix: linksOutToCells[] are not allowed for update_rows() operation
我正在使用 Smartsheet Python SDK 并尝试更新智能表中的行,其中许多要更新的单元格都具有指向其他工作表的现有链接。我想用来自 pandas df 的数据更新单元格值,同时保持链接完好无损。当我尝试 update_rows 使用新的单元格值(但保持原始 links_out_to_cells
对象附加到原始单元格)时,我得到 API 错误 1032:"The attribute(s) cell.linksOutToCells[] are not allowed for this operation."
有谁知道这个问题的好的解决方法?
这是我的 evaluate_row_and_build_updates
函数(传入智能表行和来自 pandas df 的行 - 智能表中每一行的第一个值将随着更新保留)
def evaluate_row_and_build_updates(ss_row, df_ro):
new_row = smartsheet.models.Row()
new_row.id = ss_row.id
new_row.cells = ss_row.cells
empty_cell_lst = list(new_row.cells)[1:]
for i in range(len(empty_cell_lst)):
empty_cell_lst[i].value = df_row[1][i]
return new_row
在请求更新 link 的源单元格上的单元格值时,您不必包含 linksOutToCells
对象。您可以只更新单元格值。 link 输出到其他 sheet 将保留在原位,您添加的新单元格值将 link 输出到其他 sheet。
它可能看起来像这样:
# Build new cell value
new_cell = smartsheet.models.Cell()
new_cell.column_id = <COLUMN_ID>
new_cell.value = "testing"
# Build the row to update
new_row = smartsheet.models.Row()
new_row.id = <ROW_ID>
new_row.cells.append(new_cell)
# Update rows
updated_row = smar_client.Sheets.update_rows(
<SHEET_ID>,
[new_row])
运行 link 熄灭的单元格上的代码将使单元格 link 保持原位。
我正在使用 Smartsheet Python SDK 并尝试更新智能表中的行,其中许多要更新的单元格都具有指向其他工作表的现有链接。我想用来自 pandas df 的数据更新单元格值,同时保持链接完好无损。当我尝试 update_rows 使用新的单元格值(但保持原始 links_out_to_cells
对象附加到原始单元格)时,我得到 API 错误 1032:"The attribute(s) cell.linksOutToCells[] are not allowed for this operation."
有谁知道这个问题的好的解决方法?
这是我的 evaluate_row_and_build_updates
函数(传入智能表行和来自 pandas df 的行 - 智能表中每一行的第一个值将随着更新保留)
def evaluate_row_and_build_updates(ss_row, df_ro):
new_row = smartsheet.models.Row()
new_row.id = ss_row.id
new_row.cells = ss_row.cells
empty_cell_lst = list(new_row.cells)[1:]
for i in range(len(empty_cell_lst)):
empty_cell_lst[i].value = df_row[1][i]
return new_row
在请求更新 link 的源单元格上的单元格值时,您不必包含 linksOutToCells
对象。您可以只更新单元格值。 link 输出到其他 sheet 将保留在原位,您添加的新单元格值将 link 输出到其他 sheet。
它可能看起来像这样:
# Build new cell value
new_cell = smartsheet.models.Cell()
new_cell.column_id = <COLUMN_ID>
new_cell.value = "testing"
# Build the row to update
new_row = smartsheet.models.Row()
new_row.id = <ROW_ID>
new_row.cells.append(new_cell)
# Update rows
updated_row = smar_client.Sheets.update_rows(
<SHEET_ID>,
[new_row])
运行 link 熄灭的单元格上的代码将使单元格 link 保持原位。