我如何通过 gspread-formatting 在 Google DOCS API 中创建 DataValidationRule?

How can i create DataValidationRule in Google DOCS API via gspread-formatting?

我需要创建 DataValidationRule:只有单元格中的数字。

validation_rule = DataValidationRule(
        BooleanCondition(???),
        showCustomUi=True)

...

set_data_validation_for_cell_range(sheet_, 'A2:B2', validation_rule)

我相信你的目标如下。

  • 您想将数据验证规则设置为单元格“A2:B2”仅作为数字。

我认为 gspread 不使用 Google 文档 API。 Ref From your script, I thought that you wanted to achieve your goal using Sheets API with gspread. And also, I thought that you are using a library of "gspread-formatting". Ref

如果我的理解是正确的,下面的修改怎么样?

修改后的脚本:

在此修改中,自定义公式用于实现您的目标。

validation_rule = DataValidationRule(
    BooleanCondition('CUSTOM_FORMULA', ['=ISNUMBER(A2)']),
    showCustomUi=True
)
set_data_validation_for_cell_range(worksheet, 'A2:B2', validation_rule)
  • 当此脚本为运行时,"A2:B2"的单元格只能输入数字。输入字符串时,出现警告。

注:

  • 此脚本假定您已经能够使用表格 API 获取和放置 Google 电子表格的值。请注意这一点。

  • 作为附加信息,比如当你想使用0以上的号码时,你也可以修改下面的脚本。您可以在 the official document.

    查看详细信息
      validation_rule = DataValidationRule(
          BooleanCondition('NUMBER_GREATER', ['0']),
          showCustomUi=True
      )
    
  • 并且,当使用strict=True时,只能输入数字。

参考文献: