在Google表格中插入新行时的默认单元格值

时间:2015-09-11 15:58:42

标签: google-apps-script google-sheets spreadsheet google-spreadsheet-api

在Google表格中,我想“在上方/下方插入一行”,并让新行中的某些单元格具有默认值。

例如,当添加新行时,此行的C列中的单元格将具有字母“N”,列G将具有“Y”,而列T将具有“= sum”的公式( A2 + B2)“ - 当然A2和B2需要反映这一新行的数量。

到目前为止我所拥有的:

function addRow() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var cell = sheet.getActiveCell();
  var range = source.getRange("'SAMPLE ROW'!A2:AJ2");
  range.copyValuesToRange(0, 4, 6, 4, 6);
}

source.getRange从我正在使用的隐藏选项卡中获取数据。

如何在copyValuestoRange部分使用当前的行?

1 个答案:

答案 0 :(得分:1)

要插入新行,您可以使用函数insertRowBeforeinsertRowAfter,您只需指示将插入新行的参考索引(整数)。

sheet.insertRowBefore(2); //Here a new row will be inserted before the second row.

要将值插入新行中的单元格,您可以使用范围内的函数setValue()。

sheet.getRange(2,3,1,1).setValue('N'); // this will insert the value N in the column C.

您还可以使用a1Notaion选择范围。例如getRange( 'C2')。以下是有关getRange的文档,请查看详细信息。

我不明白你的问题“如何在copyValuestoRange部分使用当前行?”。

要从范围中获取值,您必须调用范围函数getValues()。它将返回一个二维数组。然后使用范围函数setValues(),您可以使用该数组将这些值插入新范围。

var values = source.getRange("'SAMPLE ROW'!A2:AJ2").getValues();
sheet.getRange('range_you_need').setValues(values);

希望这有帮助。