2016-11-04 3 views
0

20 개의 탭이있는 스프레드 시트가 하나 있지만 처리가 매우 어려워서 다른 시트 (파일)로 나눠야합니다.20 개의 탭이있는 단일 스프레드 시트를 별도의 시트 (다른 ​​파일)로 분할하는 방법

가능한 경우 일부 Google Apps 스크립트를 제안하여 관리 할 수 ​​있습니까?

변환 할 때 탭 이름이 새 파일의 이름이되기를 바랍니다.

+0

안녕하세요. [질문하는 방법] (http://stackoverflow.com/help/how-to-ask)을 확인하십시오. –

답변

0

다음은 작동해야하는 스크립트입니다. toFolderName은 기본적으로 비어 있으므로 파일은 루트 폴더에 저장됩니다. 고유 한 폴더 이름을 입력하면 해당 폴더에 파일이 복사됩니다. 여기에서 시작하는 것이 좋습니다. 꽤 느린 스크립트이지만, 20 개의 탭이 1 분 넘게 걸릴 것입니다.

function migrateSheetsToFiles() { 
    var mySheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 
    var toFolderName = ''; 
    var i; 
    for(i in mySheets){ 
    var currentSheet = mySheets[i]; 
    var oldData = currentSheet.getDataRange().getValues(); 
    var newFile = SpreadsheetApp.create(currentSheet.getName()); 
    var newId = newFile.getId(); 
    var newSheet = newFile.getSheets()[0] 

    newSheet.getRange(1,1,oldData.length,oldData[0].length).setValues(oldData); 
    newSheet.setName(newFile.getName()); 

    if(toFolderName != ''){ 
     var fileInDrive = DriveApp.getFileById(newId); 
     fileInDrive.makeCopy(fileInDrive.getName(),DriveApp.getFoldersByName(toFolderName).next()); 
     fileInDrive.setTrashed(true); 
    }; 

    }; 
};