Google工作表应用脚本 - 获取水平数据并垂直设置

问题描述 投票:0回答:1

我正在尝试使用google脚本函数getValues从Google工作表应用程序中将一系列数据水平排列在一行中,然后将它们放入一个垂直排列在一列中的不同工作表中。我的代码目前看起来像这样:

function tester() {
  var app = SpreadsheetApp;
  var loader = app.getActiveSpreadsheet().getSheetByName('Loader');
  var stats = app.getActiveSpreadsheet().getSheetByName('Stats');
  var list = app.getActiveSpreadsheet().getSheetByName('List');  

  var xpos = 19;
  var ypos = 2;

  var abilityBlock = list.getRange(ypos,xpos,1,16).getValues();

  Logger.log(abilityBlock);

  //loader.getRange(10,5,16,1).setValues(abilityBlock);

  }

我将setValues部分注释掉了,因为它返回一个错误,说当数据抓取的数据为16高时,它预计数据为16宽。

从我能够收集到的罪魁祸首来看,数据是如何被拉入阵列的。记录器将数据显示为[[value1,value2,value3,value4等]]而不是[[value1],[value2],[value3],[value4],[etc ...]]

我想避免使用for循环一次推送一个数据,还有另一种方法来转换数组中的数据吗?或者使用getValues操作以我可以实际使用的格式抓取它的另一种方法?

google-apps-script google-sheets
1个回答
0
投票

我想你想使用转置功能。

试试这个

list.getRange(ypos,xpos,1,16).copyTo(loader.getRange(10,5), 
                     spreadsheetApp.CopyPasteType.PASTE_VALUES, true);

这里描述:https://developers.google.com/apps-script/reference/spreadsheet/range#copyTo(Range,CopyPasteType,Boolean)

© www.soinside.com 2019 - 2024. All rights reserved.