如何在Google Apps脚本中为SpreadSheets创建自定义数据验证生成器?

时间:2015-03-06 00:47:25

标签: google-apps-script

电子表格的Google Apps脚本有许多内置的需求方法[1],但如果我想创建自己的验证例程,该怎么办呢?实际上,我想创建自己的例程,并且必须返回true / false并将其绑定到'newDataValidation'

我看到'withCriteria(criteria,args)'存在,但这似乎是用于修改现有规则集,而不是从头创建一个。

我需要添加的两条规则是每行文本的最大字符串长度和每个单元格的最大新行数。如果您可以使用现有规则集执行此操作,那么您可以获得奖励积分。

[1] - https://developers.google.com/apps-script/reference/spreadsheet/data-validation-builder

1 个答案:

答案 0 :(得分:1)

如果您只是将其用作另一个用户的表单,您可以绕过所有这些内容,只需启动单元格的内容并设置注释或消息,即如果单元格中允许的最大字符数A列是8:

function onEdit(e) {
  var ss = e.source;
  var cell = ss.getActiveCell();
  var max_length = 8;

  if(cell.getColumn() === 1) {

    var value = String(cell.getValue());

    if(value.length > max_length) {

      cell.clearContent();
      cell.setNote("Oops, less than 8 characters please");
      //or perhaps this instead of a note
      //ss.toast('Less than 8 characters please', 'Oops', 3);

    } else {
      cell.setNote(null);
    }
  }
}