从包含 python 的列中删除公式
Remove formula from column with python
我正在尝试从 python 的现有 sheet 的列中删除公式。
我尝试使用列对象 (column.formula = None)
将我的公式设置为 None
它不起作用,我的列对象保持不变。有人有解决这个问题的意见吗?谢谢!
我花了一些时间才弄明白,但似乎我找到了解决办法。原来这是一个两步过程:
更新 column
对象以删除公式(通过将 column.formula
设置为空字符串)。
对于 sheet 中的每一行,更新该列中的单元格以删除公式(将 cell.value
设置为空字符串,将 cell.formula
设置为 None
).
完成第 1 步将从 column
对象中删除公式 -- 但每行中的该单元格仍将包含该公式。这就是需要第 2 步的原因 -- 第 2 步将从每行中的单个单元格中删除公式。
Python 中有一些示例代码可以执行我所描述的内容。 (务必更新 id
值以对应您的 sheet。)
第 1 步:从列中删除公式
column_spec = smartsheet.models.Column({
'formula': ''
})
# Update column
sheetId = 3932034054809476
columnId = 4793116511233924
result = smartsheet_client.Sheets.update_column(sheetId, columnId, column_spec)
第 2 步:从每一行的单元格中删除公式
注意:此示例代码仅更新一个特定行——在您的情况下,您需要更新 sheet 中的每一行。只需为 sheet 中的每一行构建一个行对象(如下所示),然后调用 smartsheet_client.Sheets.update_rows
一次,传入您构建的与 [= 中所有行对应的行对象数组50=]。通过这种方式,您只需调用 API 一次,这是最有效的处理方式。
# Build new cell value
new_cell = smartsheet.models.Cell()
new_cell.column_id = 4793116511233924
new_cell.value = ''
new_cell.formula = None
# Build the row to update
row_to_update = smartsheet.models.Row()
row_to_update.id = 5225480965908356
row_to_update.cells.append(new_cell)
# Update row
sheetId = 3932034054809476
result = smartsheet_client.Sheets.update_rows(sheetId, [row_to_update])
我正在尝试从 python 的现有 sheet 的列中删除公式。
我尝试使用列对象 (column.formula = None)
将我的公式设置为 None它不起作用,我的列对象保持不变。有人有解决这个问题的意见吗?谢谢!
我花了一些时间才弄明白,但似乎我找到了解决办法。原来这是一个两步过程:
更新
column
对象以删除公式(通过将column.formula
设置为空字符串)。对于 sheet 中的每一行,更新该列中的单元格以删除公式(将
cell.value
设置为空字符串,将cell.formula
设置为None
).
完成第 1 步将从 column
对象中删除公式 -- 但每行中的该单元格仍将包含该公式。这就是需要第 2 步的原因 -- 第 2 步将从每行中的单个单元格中删除公式。
Python 中有一些示例代码可以执行我所描述的内容。 (务必更新 id
值以对应您的 sheet。)
第 1 步:从列中删除公式
column_spec = smartsheet.models.Column({
'formula': ''
})
# Update column
sheetId = 3932034054809476
columnId = 4793116511233924
result = smartsheet_client.Sheets.update_column(sheetId, columnId, column_spec)
第 2 步:从每一行的单元格中删除公式
注意:此示例代码仅更新一个特定行——在您的情况下,您需要更新 sheet 中的每一行。只需为 sheet 中的每一行构建一个行对象(如下所示),然后调用 smartsheet_client.Sheets.update_rows
一次,传入您构建的与 [= 中所有行对应的行对象数组50=]。通过这种方式,您只需调用 API 一次,这是最有效的处理方式。
# Build new cell value
new_cell = smartsheet.models.Cell()
new_cell.column_id = 4793116511233924
new_cell.value = ''
new_cell.formula = None
# Build the row to update
row_to_update = smartsheet.models.Row()
row_to_update.id = 5225480965908356
row_to_update.cells.append(new_cell)
# Update row
sheetId = 3932034054809476
result = smartsheet_client.Sheets.update_rows(sheetId, [row_to_update])