python - 使用 gspread 向单元格添加值会破坏 Google 表格中的条件格式
问题描述
我有一个谷歌表格工作表,如下所示:
col1 col2 col3 col4
ABC 10 ABC 145.1
ABC 15.5 ABC 574.5
ABC 26.7 ABC 45.4
如果它们的值小于给定值,我将单元格标记为红色并且它可以工作:
rule = ConditionalFormatRule(
ranges=[GridRange.from_a1_range('B:D', worksheet)],
booleanRule=BooleanRule(
condition=BooleanCondition('NUMBER_LESS', ['100']),
format=CellFormat(backgroundColor=Color(0.992, 0.529, 0.529))
)
)
rules = get_conditional_format_rules(worksheet)
rules.append(rule)
rules.save()
我像这样添加%
符号col2 & col4
:
cell_list = [worksheet.range('B2:B4'), worksheet.range('D2:D4')]
sign_to_add = '%'
for item in cell_list:
for val in item:
val.value = val.value + sign_to_add
for item in cell_list:
worksheet.update_cells(item)
col1 col2 col3 col4
ABC 10% ABC 145.1%
ABC 15.5% ABC 574.5%
ABC 26.7% ABC 45.4%
但这打破了我在上面所做的条件格式。如果我切换代码位置,则格式不起作用,因为一旦在 google 表格中单击单元格,就会像这样:
'10%
注意前面的'
有没有办法在能够向%
单元格添加符号的同时实现条件格式?
解决方案
在您的脚本中,如何添加value_input_option='USER_ENTERED'
以下方法update_cells
?似乎默认value_input_option
值为RAW
. 由此,'
被添加。
从:
worksheet.update_cells(item)
至:
worksheet.update_cells(item, value_input_option='USER_ENTERED')
笔记:
- 在这种情况下,当您的脚本运行时,
145.1
变为145.1%
. 由此,该值小于100
。请注意这一点。
参考:
推荐阅读
- c++ - 如何在 main 中调用重载的 + 运算符函数,只传递一个参数?
- c# - 如何在 dotnet core3 中使用 Glimpse?当导航 https://localhost:44398/Glimpse.axd 发生 404 错误
- javascript - 如何设置一个失败的承诺值
- algorithm - 递归关系:T(n) = T(ceil(n/3)) + T(ceil(3n/5)) + 100*n
- javascript - 在循环中重用变量时,哪一个更有效?
- sqlite - 如何在 SQLite 中找到所有与另一个人共享相同地址的人
- bash - 在不同的 Jenkins 阶段不再找到命令
- r - 如何在 ggplot2 图中提供可选的填充参数?
- c++ - 如何在提升图属性中使用参考?
- npm - 在生产模式下找不到@nuxt/content 页面