>source

스크립트 및 드라이브 API를 사용하여 Excel 파일을 Google 스프레드 시트로 변환 할 수 있다는 것을 알고 있지만 Excel 시트를 변환하고 변환 된 파일을 다른 폴더로 이동하는 스크립트를 찾고 있습니다.

따라서 필요한 단계는 다음과 같습니다.

  1. 폴더 A에서 Excel (.xls/.xlsx)을 Google 스프레드 시트로 변환
  2. 변환 된 파일을 FoldarA에서 FolderB로 이동
  3. 폴더 A에서 원본 엑셀 파일 삭제
  4. 3 단계는이를 피하지만 이미 변환 된 파일은 복제하지 마십시오.

excel 파일이 Google 드라이브와 동기화되는 로컬 폴더에 붙여지고 있으며 파일 크기는 3MB를 넘지 않습니다. 현재 스크립트는 다음과 같습니다. 파일을 변환하지만 루트 폴더에 저장하며 스크립트가 다시 실행될 때 변환을 복제합니다.

function importXLS(){
  var files = DriveApp.getFolderById('1hjvNIPgKhp2ZKIC7K2kxvJjfIeEYw4BP').searchFiles('title != "nothing"');
  while(files.hasNext()){
    var xFile = files.next();
    var name = xFile.getName();
    if (name.indexOf('.xlsx')>-1){ 
      var ID = xFile.getId();
      var xBlob = xFile.getBlob();
      var newFile = { title : name+'_converted',
                     key : ID
                    }
      file = Drive.Files.insert(newFile, xBlob, {
        convert: true
      });
    }
  }
}


  • 답변 # 1

    변환 된 Google 스프레드 시트 파일을 "FolderB"로 작성하려고합니다.

    파일이 변환 된 후 "FolderA"에서 XLSX 파일을 삭제하려고합니다.

    Google Apps Script를 사용하여 위의 목표를 달성하려고합니다.

    내 이해가 맞다면이 수정은 어떻습니까? 이 수정에서는 스크립트를 수정했습니다.

    수정 포인트 :

    parents 속성을 사용하여 특정 폴더에 파일을 직접 생성 할 수 있습니다  요청 본문에서.

    Drive.Files.remove(fileId) 를 사용하여 파일을 삭제할 수 있습니다 .

    수정 된 스크립트 :
    function importXLS(){
      var folderBId = "###"; // Added // Please set the folder ID of "FolderB".
      var files = DriveApp.getFolderById('1hjvNIPgKhp2ZKIC7K2kxvJjfIeEYw4BP').searchFiles('title != "nothing"');
      while(files.hasNext()){
        var xFile = files.next();
        var name = xFile.getName();
        if (name.indexOf('.xlsx')>-1){ 
          var ID = xFile.getId();
          var xBlob = xFile.getBlob();
          var newFile = {
            title : name+'_converted',
            parents: [{id: folderBId}] //  Added
          };
          file = Drive.Files.insert(newFile, xBlob, {
            convert: true
          });
          // Drive.Files.remove(ID); // Added // If this line is run, the original XLSX file is removed. So please be careful this.
        }
      }
    }
    
    
    참고 :

    XLSX 파일 수가 많으면 실행 시간이 6 분을 초과 할 수 있습니다.

    // Drive.Files.remove(ID); 정보 이 스크립트를 실행할 때는주의하십시오. 원본 XLSX 파일은 스크립트가 실행될 때 완전히 삭제되기 때문입니다. 그래서 나는 이것을 언급했다. 먼저 샘플 파일을 사용하여 스크립트를 테스트하십시오.

    참조 :

    파일 : 삽입

    파일 : 삭제

관련 자료

  • 이전 javascript - 순수 js에서 아코디언을 구현하는 방법이 작동하지 않습니다
  • 다음 amazon web services - AWS Cloudformation DB 인스턴스 IAM 역할