GAS 여러 Excel을 함께 스프레드시트로 변환합니다.

4985 단어 GoogleAppsScriptgas

이 기사에 대하여



GAS를 사용하여 여러 Excel 파일을 스프레드 시트로 변환하는 방법에 대한 메모입니다.
변환하면 레이아웃이 무너지거나 ".xlsm"형식의 파일 변환의 경우 매크로를 사용할 수 없게 되기 때문에 이용은 자기 책임으로 부탁드립니다.

폴더와 파일을 준비합니다.



아래 폴더를 준비합니다. excelfile 변환 전 폴더에 테스트용으로 Excel을 몇 개 저장해 둡니다.
  • excelfile 변환 전 폴더
  • 변환 전 Excel 파일이 저장된 폴더

  • excelfile 변환된 폴더
  • 스프레드 시트 변환 후 파일을 프로그램이 저장하는 폴더


  • excelfile 변환 전 폴더


    코드


    /*
    フォルダ単位でまとめて変換する。
    */
    const sourceFolderId = 'フォルダID';
    const destFolderId = 'フォルダID';
    
    function myFunction() {
        // Excelファイルが入っているフォルダをidによって取得
        const sourceFolder = DriveApp.getFolderById(sourceFolderId);
        // Excelファイルたちを変数に保存
        const excelFiles   = sourceFolder.getFiles();
        // 変換されたファイルが格納されるフォルダをidによって取得
        const destFolder   = DriveApp.getFolderById(destFolderId);
        // Excelファイルをイテレートして順にスプレッドシートに変換
        while(excelFiles.hasNext()) {
            var file = excelFiles.next();
            convertToSpreadsheet(file, destFolder);
        }
    }
    
    function convertToSpreadsheet(file, folder) {
        // 各種オプションを設定
        // mimeTypeをスプレッドシートにすることで変換される
        options = {
            title: file.getName(),
            mimeType: MimeType.GOOGLE_SHEETS,
            parents: [{id: folder.getId()}]
        };
    
        // Drive APIへfileをPOSTする
        Drive.Files.insert(options, file.getBlob())
    }
    

    결과



    excelfile 변환된 폴더를 살펴보면 파일이 새로워졌습니다.
    확장자는 ".xlsm"이지만 파일 아이콘은 스프레드시트의 아이콘이 되며 파일의 속성을 확인하면 스프레드시트가 되어 있는 것을 확인할 수 있습니다.



    파일을 변환 한 후 스프레드 시트로 작업하고 싶습니다.



    변환 후의 파일 ID를 취득해 조작하려면, 파일을 보존한 곳에서 변수에 넣으면 파일 정보의 오브젝트가 돌려주므로, 그 안의 id 프로퍼티로부터 파일 id를 취득한다.
    var file = Drive.Files.insert(options, file.getBlob());
    let sp = SpreadsheetApp.openById(file.id).getSheets();
    
    

    좋은 웹페이지 즐겨찾기