2016-11-09 91 views
0

我正在将一些Google Apps脚本from this post拼凑在一起,这些脚本将获取文件列表并将其全部导入为唯一工作表。它可以工作,除非在任何.csvs中有空白/空白点,那么导入到表格会将空白值写为“未定义”,而不是跳过或留空。使用带有空嵌套数组的'setValues'使用谷歌脚本写入'undefined'

有没有办法有一个空的嵌套数组多维数组,然后使用

newsheet.getRange(i+1, 1, 1, csvData[i].length).setValues(new Array(csvData[i])); 

没有我的.csv空/空点设置一个未定义的值?还是有一个快速清理,我可以超越?

由于

回答

1

记录通过k的帮助解决了我的问题。

Logger.log(csvData[i])正在恢复

[.....Top Products, false, null, null, One per quote line, null, Quantity, false, null, Always, null, null, null,.....]

然后当我的for循环做一套,Logger.log(csvData[i][j])显示

[16-11-09 07:52:25:255 EST] Top Products 
[16-11-09 07:52:25:256 EST] false 
[16-11-09 07:52:25:256 EST] undefined 
[16-11-09 07:52:25:257 EST] undefined 
[16-11-09 07:52:25:257 EST] One per quote line 
[16-11-09 07:52:25:257 EST] undefined 
[16-11-09 07:52:25:258 EST] Quantity 
[16-11-09 07:52:25:258 EST] false 
[16-11-09 07:52:25:259 EST] undefined 
[16-11-09 07:52:25:259 EST] Always 
[16-11-09 07:52:25:259 EST] undefined 
[16-11-09 07:52:25:260 EST] undefined 
[16-11-09 07:52:25:260 EST] undefined 

嵌套for的内部下面的代码片段固定我的问题。

if(csvData[i][j] == null){ 
     csvData[i][j]= ''; 
    } 
+1

如果K的答案有用,请提出答案。 –

1

当阵列数据被输出到电子表格中,以空的数组元素不显示在单元格“未定义”。

当部分CSV数据中的元素为空时,由CSVToArray翻译的数组元素被赋予null。因此,当数组输出到电子表格时,具有null的元素变成干净的单元格而不显示“未定义”。

如果不是干净的单元格,可以使用下面的代码。

for (var i=0; i< csvData.length; i++){ 
    csvData[i][csvData[i].indexOf("")] = null 
} 

如果我的理解不正确,我很抱歉。

+0

因此,使用你说的没有用于我的场景,但它确实指向了我的正确方向。我曾经为循环'为(我....){为(j ....){'然后记录每个单独的索引。我发现我的未定义值在日志中为空。所以通过加入if(csvData [i] [j] == null){csvData [i] [j] =''; }'解决了它! – Grant

相关问题