有没有其他方法来重置字段
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'
,并将其他两列的值分别设置为 6
和 0
。不确定这种方法是否更快,但它可能更有效。
解决方案:
方案一:
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:
我正在尝试创建重置电子表格功能来清除电子表格。
现在我使用循环来定义每一列的值。 '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'
,并将其他两列的值分别设置为6
和0
。不确定这种方法是否更快,但它可能更有效。
解决方案:
方案一:
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: