如何从电子表格的列中获取值的数组? [英] How to get an array of values from the column of a spreadsheet?

查看:80
本文介绍了如何从电子表格的列中获取值的数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  getSheetValues(1,1,maxRows,1)

返回一个包含1个或没有元素的maxRows数组
如果我将maxRow设置为5,并且在前3行(1,2和3)中有值,我将得到一个Object [] []



  [[1.0],[2.0],[3.0],[],[]] 
   
>函数stripArray(arr){
return arr.map(function(t){if(t.length){return t [0];} else {return undefined;}})。返回n!= undefined});


function testArray(){
var arr = [[1.0],[2.0],[3.0],[],[]];
var strippedArr = stripArray(arr);
Logger.log(strippedArr);
}

它就像一个魅力,它的日志

  [1.0,2.0,3.0] 



<然后我的麻烦开始了。我写了一个函数来处理表单。

  function testSheet(){
var ssId =XXX;
var ss = SpreadsheetApp.openById(ssId);
var sheet = ss.getSheetByName(YYY);
var values = sheet.getSheetValues(1,1,maxPortalToDeQueue,1);
Logger.log(values);
Logger.log(stripArray(values));
}

我得到一些疯狂的价值

  [$ 1.0],[2.0],[3.0],[],[]] 
[1.0,2.0,3.0, / code>

有人可以帮助我理解这种行为并获取我正在查找的数据吗?$ b $虽然[]看起来应该有一个长度0,它实际上是1,但没有内容。

 函数stripArray(values){
返回values.filter(function(d){
return d.length&& d [0]!=='';
});
}


getSheetValues(1, 1, maxRows, 1)

return an array of maxRows arrays with 1 or no elements If I set maxRow to 5 and I have values in the first 3 rows (1, 2 and 3) I'll get an Object[][]

[[1.0], [2.0], [3.0], [], []]

So I wrote some test code

function stripArray(arr){
  return arr.map(function(t){if(t.length){return t[0];}else{return undefined;} }).filter(function(n){ return n != undefined });
}

function testArray(){
  var arr=[[1.0], [2.0], [3.0], [], []];
  var strippedArr = stripArray(arr);
  Logger.log(strippedArr);
}

it works like a charm and it log

[1.0, 2.0, 3.0]

Then my troubles begins. I wrote a function to work on the sheet.

function testSheet(){
  var ssId="XXX";
  var ss = SpreadsheetApp.openById(ssId);
  var sheet = ss.getSheetByName("YYY");
  var values = sheet.getSheetValues(1, 1, maxPortalToDeQueue, 1);
  Logger.log(values);
  Logger.log(stripArray(values));
}

I get some crazy values

[[1.0], [2.0], [3.0], [], []]
[1.0, 2.0, 3.0, , ]

Someone can help me to understand this behaviour and to get the data I'm looking for ?

解决方案

Although [] looks like it should have a length 0, it actually is 1, but has no content. use this instead.

function stripArray(values) {
  return values.filter(function(d) {
    return d.length && d[0] !== '';
  });
}

这篇关于如何从电子表格的列中获取值的数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆