是否有Python函数提取Smartsheet单元格历史?API编码位置咨询
问题解答
权限问题前置说明
你遇到的两个权限报错本质是Smartsheet的权限控制限制——不管用UI还是API,只要账号没有对应权限(比如工作表的查看历史权限、单元格详情权限),都没法获取数据。所以第一步要确认你的账号是否被工作表管理员授予了查看版本历史或查看单元格详情的权限,这是前提,不然编码再对也没用。
编码操作的归属
所有编码逻辑都在Python中实现,Smartsheet这边只需要完成两个前置配置:
- 在Smartsheet的「个人设置」里生成一个API密钥(API Token),这是Python代码调用API的身份凭证。
- 确保你的API密钥对应的账号,拥有目标工作表的查看单元格历史权限(如果权限不够,找管理员调整)。
Python代码核心逻辑示例
用Smartsheet官方的Python SDK来实现,核心步骤如下:
- 安装SDK:
pip install smartsheet-python-sdk
- 编写代码调用API获取单元格历史:
import smartsheet # 初始化客户端,替换成你的API密钥 smartsheet_client = smartsheet.Smartsheet('YOUR_API_TOKEN') smartsheet_client.errors_as_exceptions(True) try: # 替换为目标工作表ID、行ID、列ID sheet_id = 123456789 row_id = 987654321 column_id = 112233445 # 获取单元格历史 cell_history = smartsheet_client.Cells.get_cell_history( sheet_id, row_id, column_id, include_all=True # 获取所有历史记录,否则只返回最近的 ) # 打印历史记录 for entry in cell_history: print(f"修改时间: {entry.modified_at}") print(f"修改人: {entry.modified_by.name}") print(f"旧值: {entry.old_value}") print(f"新值: {entry.new_value}\n") except smartsheet.exceptions.ApiError as e: print(f"API调用错误: {e}")
注意:如果运行代码还是报权限错误,直接找工作表管理员确认权限配置,API的权限和UI权限是完全同步的。
内容的提问来源于stack exchange,提问作者Varun Samadaria
相关产品推荐
相关产品推荐

