2016-11-09 10 views
0

일부 Google Apps Script from this post을 함께 사용하여 파일 목록을 가져 와서 모두 고유 한 시트로 가져옵니다. .csvs에 공백/빈 자리가있는 경우를 제외하고 모두 작동합니다. 시트로 가져 오기를 수행하면 공백 값을 건너 뛰거나 공백으로 두지 않고 해당 값을 "정의되지 않음"으로 씁니다.빈 중첩 배열로 .setValues를 사용하면 Google 스크립트로 'undefined'를 씁니다.

빈 중첩 된 배열과 다차원 배열을하고 정의되지 않은 값을 설정 내 .CSV에서 빈/빈 반점없이

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

를 사용하는 방법이 있나요? 아니면 내가 할 수있는 빠른 정리가 있습니까?

감사

배열 데이터가 스프레드 쉬트에 출력된다

답변

1

로깅은 k의 도움으로 문제를 해결했습니다. 내가 루프 다른 작업을 수행 할 때

Logger.log(csvData[i]) 다음

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

을 반환, Logger.log(csvData[i][j]) 중첩 for의 내부에 다음 코드 내 문제를 해결

[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 

을 보여줍니다.

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

그래서 내 시나리오에서는 작동하지 않는다고 말하면서 올바른 방향으로 나를 가리켜주었습니다. 나는 for (for ....) {for (j ....) {'for for each loops를 사용했다. 내 정의되지 않은 값이 로그에서 null이라는 것을 알았습니다. 그래서'if (csvData [i] [j] == null) { csvData [i] [j] = ''; }'그것을 해결했습니다! – Grant

관련 문제