0

我正在使用 Smartsheet Python SDK 并尝试更新 smartsheet 中的行,其中许多要更新的单元格具有指向其他工作表的现有链接。我想用 pandas df 中的数据更新单元格值,同时保持链接完好无损。当我尝试使用新的单元格值更新_rows(但保持原始links_out_to_cells对象附加到原始单元格)时,我收到 API 错误 1032:"The attribute(s) cell.linksOutToCells[] are not allowed for this operation."有人知道解决此问题的好方法吗?

这是我的evaluate_row_and_build_updates函数(传入 smartsheet 行和 pandas df 中的行 - smartsheet 中每一行中的第一个值是为了保留更新)

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
4

1 回答 1

0

在请求更新链接源单元格上的单元格值时,您不必包含该linksOutToCells对象。您可以只更新单元格值。指向另一个工作表的链接将保持不变,您添加的新单元格值将链接到其他工作表。它可能看起来像这样:

# 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])

在有链接的单元格上运行该代码将使单元格链接保持在适当的位置。

于 2019-07-10T17:30:14.937 回答