2014-12-10 2 views
1

루프를 사용하지 않고 Google 스프레드 시트에 여러 행을 삽입 할 수있는 방법이 있습니까?스프레드 시트에서 Google 스크립트를 사용하여 여러 행을 삽입하는 방법

Google Apps Script 만 사용하여이 작업을 수행해야합니다.

function testMultipleEntry(){ 
 

 
    var sheet = SpreadsheetApp.openById(INSERT-SHEET-ID); 
 
    var mainSpreadSheet= sheet.getActiveSheet(); 
 
    
 
    var fiveRows= mainSpreadSheet.getRange(2, 1, 5,mainSpreadSheet.getMaxColumns()); 
 
    
 
    var tempSheet= SpreadsheetApp.create("TestSheetAppend").getActiveSheet(); 
 
    
 
    
 
    fiveRows.copyValuesToRange(tempSheet, 1, mainSpreadSheet.getMaxColumns(), 2, 5);//used the array[][] 
 
}

마지막 줄에 표시되어 - 서비스 오류 : 스프레드 시트

+1

스프레드 시트의 최대 행이 6K 이상이므로 여러 줄의 스프레드 시트에 삽입해야하므로 한 줄씩 추가하면 시간이 초과되어 작업이 끝나지 않아 문제가 해결됩니다. – mukul

+0

코드를 너무 세밀하게 지정하지 않아도 코드가 혼란스럽고 비효율적이므로 코드가 무엇을 하려는지 판단 할 수 없습니다. 빈 행을 삽입하려고합니까? 데이터를 가져 와서 기존 행에 배치하려고합니까? 당신이 얻는 오류는이 코드에 잘못된 많은 것들과 관련이 있습니다. 예를 들어, 줄을 사용할 수 없습니다. var tempSheet = SpreadsheetApp.create ("TestSheetAppend"). getActiveSheet(); 몇 가지 이유 때문에 시트가 존재하는지 확인하기 위해 'if'문에 1을 삽입해야합니다. 그렇지 않으면 코드가 실패합니다. – HDCerberus

+0

또한 for 루프를 피하는 이유는 무엇입니까? – HDCerberus

답변

1

을 나는 아직도 당신이 찾고있는 무엇에 분명 아니지만,이 코드는 하나에서 데이터를 가져와 시트에 넣고 다른 시트에 삽입합니다.

function enterData(){ 

    var ss = SpreadsheetApp.openById('SHEET-ID'); 
    var mainSheet= ss.getActiveSheet(); 
    var fiveRows= mainSheet.getRange(2, 1, 5,mainSheet.getMaxColumns()); 
    var createSheet= ss.insertSheet("TestSheetAppend");//This line will fail if a sheet by this name exists. 
    var tempSheet = ss.getSheetByName('TestSheetAppend'); 

    fiveRows.copyValuesToRange(tempSheet, 1, tempSheet.getMaxColumns(), 2, 5);//used the array[][] 
} 

다른 시트로 완전히 보내려는 경우이 코드를 수정하여 영형.

관련 문제