2014-07-25 3 views
0

스프레드 시트에 여러 행과 열의 범위를 채우고 저장하는 방법을 알고 싶습니다. 나는 시도했다 :GAS를 사용하여 스프레드 시트에서 범위를 채우는 방법

var sheet = ss.getSheets()[0]; 
    var row = 1; // Start at row 1 
    var col = 1; // Start at column 1 
    var rows = Count; // Number of rows to use 
    var cols = 10; // Number of columns to use 
    var range = sheet.getRange(row, col, rows, cols);  

    var arrValues = []; 
    var arrRows = []; 

    for (var i=0; i<Count; i++) 
    { 
     arrValues[0] = i; 
     .... 
     arrValues[9] = 'something'; 

     arrRows[i] = arrValues; 
    } 

    range.setValues([arrRows]); 

그러나 그것은 작동하지 않는다.

값을 채우고 설정해야합니까?

답변

1

당신이 숫자 인덱스와 함께하고 싶었던 일에 대해

확실하지 이런 걸, 당신이 그랬던 것처럼이 개 루프에서 2 차원 배열을 구축에 대해 ... 그래서 나는 COL에 넣어하는 방법 1

function fillRange(){ 
    var ss = SpreadsheetApp.getActive(); 
    var sheet = ss.getSheets()[0]; 
    var row = 1; // Start at row 1 
    var col = 1; // Start at column 1 
    var Count = 10; 
    var rows = Count; // Number of rows to use 
    var cols = 10; // Number of columns to use 
    var dataArray = []; 
    for (var i=0; i < rows; i++){ 
    var rowData = []; 
    rowData.push(i); 
    for(var c=1 ; c<cols ; c++){ 
     rowData.push('something'); 
    } 
    dataArray.push(rowData); 
    } 
    Logger.log(dataArray+' length = '+dataArray.length+' width = '+dataArray[0].length); 
    sheet.getRange(row, col,dataArray.length,dataArray[0].length).setValues(dataArray); 
} 

각 열의 데이터를 제어해야하는 경우 배열을 사용하여 상수로 저장하고 다음과 같이 코드를 변경합니다.

var someData = ['','value1','other value','another one','again','and','another','data','to be','complete'] 

function fillRange(){ 
    var ss = SpreadsheetApp.getActive() 
    var sheet = ss.getSheets()[0]; 
    var row = 1; // Start at row 1 
    var col = 1; // Start at column 1 
    var Count = 10; 
    var rows = Count; // Number of rows to use 
    var cols = 10; // Number of columns to use 
    var dataArray = []; 
    for (var i=0; i < rows; i++){ 
    var rowData = []; 
    rowData.push(i); 
    for(var c=1 ; c<cols ; c++){ 
     rowData.push(someData[c]); 
    } 
    dataArray.push(rowData); 
    } 
    Logger.log(dataArray+' length = '+dataArray.length+' width = '+dataArray[0].length); 
    sheet.getRange(row, col,dataArray.length,dataArray[0].length).setValues(dataArray); 
} 
관련 문제