簡體   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