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

当我尝试使用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);
}

希望对您有所帮助!

09-25 21:54