0

기본적으로 내가하려는 것은 스크립트를 통해 스프레드 시트에 특정 수의 값을 삽입하는 것입니다. 내가 설정 한 방식으로 각 값을 따로 따로 삽입하여 x 번만큼의 함수를 호출합니다.getNumColumns()가 업데이트되지 않습니까?

내가 4 개의 값을 가지고 있다고 가정 해 보겠습니다. 모든 값을 행 1, 열 1, 열 2, 열 3, 열 4에 삽입하고 싶습니다. 내 코드에서 현재 일어나고있는 일은 모든 값을 열 1에만 삽입하고 이미 아무것도 덮어 씁니다. 1 열에서 마지막 값으로 끝납니다. 내가 getNumColumns에 그 + 1 추가하면 나는 + 1을 사용하지 않는 경우

var column = sheet.getDataRange().getNumColumns() + 1; 

sheet.getRange(1, column).setValue(question); 

, 그것은, 그래서 기본적으로 네 가지 값을 추가 할 수 있지만 열 2, 3, 4로하고, 5 것이라고 getNumColumns()는 결코 업데이트되지 않으며, 값이 삽입 될 때마다 1로 유지됩니다. 왜 이것이 현재 응답인지 꽤 오래되었습니다.

EDITED 코드 : 데이터 범위를 의미 열 1로 초기화 같은

var range = sheet.getDataRange(); 
    var data = range.getValues(); 


    if (range.isBlank()){ 
    var column = 1; 
    sheet.getRange(1, column).setValue(question); 
    }else{ 
    var column = sheet.getDataRange().getNumColumns(); 
    sheet.getRange(1, column).setValue(question); 
    } 

답변

0

이 보이는 가장 간단한 방법은 아마 쓸 수있는 당신이 1 + 1 등 2 열을 얻기 위해 추가를 통해 처음으로 if 문을 사용하면 getDataRange().getNumColumns() == 1 일 때 1을 추가하지 않고 다른 모든 시간에 추가합니다. API가 허용하는 경우 데이터 범위를 1 대신 0으로 초기화하는 방법을 찾는 것이 더 좋습니다.

편집 : 두 번째 생각에서 더 안전한 방법은 열의 수가 1 인 경우가 아니라 데이터 범위가 비어 있는지 확인하는 것입니다. isBlank() 방법을 사용할 수 있습니다.

+0

설명대로 편집을 시도했지만 그 전에 항상 모든 값을 첫 번째 열에 삽입하고 이전에 있던 값을 덮어 쓰려고합니다. –

+0

새 코드로 원래 질문을 편집했습니다. –

+0

'else' 문에'+ 1'이 필요합니다. – bluecanary

관련 문제