有没有其他方法来重置字段

Is there a other way to reset fields

我正在尝试创建重置电子表格功能来清除电子表格。 现在我使用循环来定义每一列的值。 'Dikte' 需要设置为 6。第一列必须是假的。 clearContent 清除所有内容。有更好的方法吗?

  var values = [];
  for (i = 0; i < 12; i++) {
    values.push([false,'','','','','6','0'])
  }
  var oldoak_data = SS.getRangeByName('oldoak_data').setValues(values);

解释:

方案一:

  • 您可以使用 map 摆脱 for 循环。这会给你带来一些性能提升,因为 map 比常规循环更快。

  • 一般来说,由于这种方法会覆盖以前的值,所以在我们设置新值之前清除内容是个好主意。

方案二:

  • 另一个想法是通过名称定义一个 sheet 对象。就我而言 Sheet1。仅清除所需范围 'A2:E13',并将其他两列的值分别设置为 60。不确定这种方法是否更快,但它可能更有效。

解决方案:

方案一:

function resetFields() {
  const SS = SpreadsheetApp.getActive();
  const rng = SS.getRangeByName('oldoak_data');
  const values = rng.getValues().map(r=>[false,'','','','','6','0'])
  rng.clearContent();
  rng.setValues(values);
}

方案二:

function resetFields() {
  const SS = SpreadsheetApp.getActive();
  const SH = SS.getSheetByName('Sheet1');
  const rngClear = SH.getRange('A2:E13');
  rngClear.clearContent();
  SH.getRange('F2:F13').setValue(6);
  SH.getRange('G2:G13').setValue(0);
}

解决方案 2 的示例 sheet: