Python程序化填充Smartsheet分配率列的显示格式问题
在Smartsheet中用Python将浮点值显示为百分比格式的解决方案
要让Python填充的% Allocated列在Smartsheet中显示为百分比,关键是要同时设置单元格的**数值(value)和显示文本(display_value)**两个字段,具体操作如下:
核心思路
Smartsheet的百分比列需要区分后台计算用的实际数值和前端展示的格式化内容:
value字段存储浮点型的实际分配比例(比如0.5代表50%),保证资源视图等功能的计算逻辑正常;display_value字段设置为格式化的百分比字符串(比如"50%"),让前端界面按百分比格式展示。
修改后的Python代码示例
this_allocation = 0.5 # 实际分配比例,0.5对应50% # 生成百分比格式的显示文本 display_percent = f"{int(this_allocation * 100)}%" # 构造Cell对象,同时设置value和display_value cell = SS.models.Cell({ 'column_id': column_map['% Allocated'], 'value': this_allocation, 'display_value': display_percent })
补充说明
- 确保你的
% Allocated列确实是Smartsheet中的百分比类型列(标记为GANTT_ALLOCATION),只有对应类型的列才会正确识别display_value中的百分比格式; - 如果你需要保留小数(比如33.3%),可以调整格式化逻辑,比如
f"{this_allocation * 100:.1f}%"; - 这种方式和Curl SDK的效果一致,既保证了数据的准确性,又满足了前端展示的格式要求。
内容的提问来源于stack exchange,提问作者Erwan Leroy
相关产品推荐
相关产品推荐

