繁体   English   中英

如何在谷歌应用程序脚本中使用setValues屏蔽值?

[英]How can I mask values using setValues in google apps scripts?

我正在使用谷歌应用程序脚本来构建自定义电子表格。 为了提高脚本的渲染速度,我首先构建一个输出值数组,然后使用setValues()一次性构建电子表格。

当我尝试使用setFormulas()将公式添加到电子表格时,它setFormulas()覆盖我的所有值。 所以现在我有一个案例,其中setValues()覆盖我的公式, setFormulas()覆盖我的值。

有没有办法可以为输出数组中的特定元素指定掩蔽值,以便这些元素不会覆盖电子表格中已有的数据?

理想情况下,我会将输出数组的每个元素初始化为此屏蔽值,然后只有非屏蔽元素才会显示在电子表格中。

对于通过Google发现这一点的任何人来说,现在使用setValues()进行公式似乎可以在新工作表中使用。

更具体地说,我正在使用这样的代码在完成工作表之后重新放入公式:

function setValuesAndFormulas() {
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getValues();
  var formulas = range.getFormulas();

  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (formulas[i][j].charAt(0) == "=") {
        values[i][j] = formulas[i][j];
      }
    }
  }

  range.setValues(values);
}

希望有所帮助!

不幸的是,在setValues()setFormulas()方法中不支持屏蔽。 如果给setValues()方法一个公式,它应该正确设置它,所以你可以在一次调用setValues()设置值和公式。

range.setValues([['foo', '=LEN("bar")']]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM