如何将一维数组复制到 google 张

how to copy a single dimension array to google sheets

使用 JavaScript 通过 google API.

访问 google sheet

我正在将“google spreadsheet”“Parent sheet”的全部内容复制到二维数组 vaParent

  var ssParent = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Parent");
 var vaParent = ssParent.getRange(2, 1, ssParent.getLastRow(), ssParent.getLastColumn() ).getValues();

我正在提取 6 个数组元素

  var vaNewParent01 = vaParent[i].slice(3, 9);

现在,我想将 vaNewParent01 复制到一个新的 google "spreadsheet" "company sheet"

  ssCompany.getRange( 2, 1 ).setValues( vaNewParent01 );

以上代码不起作用??

我发现 vaNewParent01 是一个包含 6 个元素的一维数组

然而,ssCompany.getRange( 2, 1 ).setValues( vaNewParent01 仅当 vaNewParent01 是 array

的数组时才有效

问题: a/ 如何使用单个语句从 sheet 中提取几个单元格并复制到另一个单元格。

提前感谢您的帮助

干杯

arr is single dimension array

let vs = arr.map(e => [e]); //for a column;
let vs = [arr]; //for a row

Sheet.getRange(1,1,vs.length, vs[0].length).setValues(vs);

从你的展示脚本来看,如果你的脚本像下面的脚本,

var ssParent = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Parent");
var vaParent = ssParent.getRange(2, 1, ssParent.getLastRow(), ssParent.getLastColumn()).getValues();
for (var i = 0; i < vaParent.length; i++) {
  var vaNewParent01 = vaParent[i].slice(3, 9);
  ssCompany.getRange(2, 1).setValues(vaNewParent01);
}

vaNewParent01 是一维数组。为了使用 setValues(values)values 需要是二维数组。关于 ssCompany.getRange( 2, 1 ).setValues( vaNewParent01 );,在这种情况下,请包括您要输入的值的行数和列数。如果我对你的情况的理解是正确的,我认为你的问题是因为这个。

关于how to extract few cells from a sheet and copy to another using a single statement.,在这种情况下,下面的示例脚本怎么样?

示例脚本 1:

此脚本是通过猜测您的测试脚本根据您的显示脚本修改的。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssParent = ss.getSheetByName("Parent");

var ssCompany = ss.getSheetByName("sample"); // Please set the destination sheet name.

var vaParent = ssParent.getRange(2, 1, ssParent.getLastRow(), ssParent.getLastColumn()).getValues();
var values = [];
for (var i = 0; i < vaParent.length; i++) {
  var vaNewParent01 = vaParent[i].slice(3, 9);
  values.push(vaNewParent01);
}
ssCompany.getRange(2, 1, values.length, values[0].length).setValues(values);

示例脚本 2:

作为其他示例脚本,下面的脚本怎么样?在此示例脚本中,使用了范围 copyTo of Class。根据您的显示脚本,我认为您想要将源 sheet 的 D2:I 中的值复制到目标 sheet 的 A2

var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssParent = ss.getSheetByName("Parent");

var ssCompany = ss.getSheetByName("sample"); // Please set the destination sheet name.

var src = ssParent.getRange("D2:I" + ssParent.getLastRow());
src.copyTo(ssCompany.getRange(2, 1), { contentsOnly: true });

参考文献: