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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google工作表应用脚本 - 获取水平数据并垂直设置相关的知识,希望对你有一定的参考价值。

我正在尝试使用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操作以我可以实际使用的格式抓取它的另一种方法?

答案

我想你想使用转置功能。

试试这个

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)

以上是关于Google工作表应用脚本 - 获取水平数据并垂直设置的主要内容,如果未能解决你的问题,请参考以下文章

mysql关于数据库表的水平拆分和垂直拆分

SQL Server 2005 中的水平到垂直表转换

动态数据显示 - 从 ChartPlotter 获取水平和垂直

Java - 如何将组件水平居中并垂直堆叠?

哪个更快,水平计数还是垂直计数?

Google 应用程序脚本 360 秒超出时间限制解决方法