如何从电子表格的列中获取值的数组? [英] How to get an array of values from the column of a spreadsheet?
问题描述
getSheetValues(1,1,maxRows,1)
返回一个包含1个或没有元素的maxRows数组
如果我将maxRow设置为5,并且在前3行(1,2和3)中有值,我将得到一个Object [] []
[[1.0],[2.0],[3.0],[],[]]
$ c $因此,我写了一些测试代码。
>函数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屋!