首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python从列中删除公式

用python从列中删除公式
EN

Stack Overflow用户
提问于 2022-03-03 23:30:56
回答 1查看 167关注 0票数 1

我正在尝试从已有的python工作表中的列中删除该公式。

我尝试使用列对象将公式设置为None (column.formula = None)

它不工作,我的列对象保持不变。有谁有解决这个问题的建议吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-04 14:47:28

我花了一点时间才弄明白,但我似乎找到了解决办法。结果发现,这是一个两步的过程:

  1. 更新column对象以删除公式(通过将column.formula设置为空字符串)。

对于工作表中的每一行,更新该列中的单元格以删除公式(将None).设置为空字符串,将cell.value设置为空字符串,将cell.formula设置为

  • )。

完成步骤1将从column对象中移除公式--但每行中的单元格仍将包含公式。这就是为什么需要步骤2 --步骤2将从每一行的单个单元格中删除公式。

下面是Python中的一些示例代码,它完成了我所描述的内容。(确保更新id值以对应于您的工作表。)

步骤1:从列中删除公式

代码语言:javascript
复制
column_spec = smartsheet.models.Column({
    'formula': ''
})

# Update column
sheetId = 3932034054809476
columnId = 4793116511233924
result = smartsheet_client.Sheets.update_column(sheetId, columnId, column_spec)

步骤2:从每行中的单元格中移除公式

注意:此示例代码只更新一个特定行--在您的示例中,您需要更新工作表中的每一行。只需为工作表中的每一行构建一个行对象(如下所示),然后调用smartsheet_client.Sheets.update_rows一次,传入与工作表中所有行相对应的行对象数组。通过这样做,您只需要调用API一次,这是最有效的方法。

代码语言:javascript
复制
# 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])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71344989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档