'구글스프레드시트'에 해당되는 글 2건

구글드라이브에 너무 많은 파일을 넣어놓다보니
나름 폴더 정리를 한다고 생각했는데도 찾기가 힘들때가 상당히 자주 있습니다.
그래서 구글드라이브의 파일 리스트를 만들 필요성을 느꼈는데요
개인적으로도 잘 사용하고 있지만 특히 회사에서 공유드라이브의 파일 목록을
매일 새벽에 업데이트 하도록 트리거를 걸어놓아서 매우 잘 사용하고 있습니다.

아래 스크립트를 이용하시면 될 것 같습니다.
두개의 function을 이용하고 있고
특정 폴더 아래의 파일 리스트를 추출하고자 하시는 경우
9행의 getFileList의 파라미터를
폴더명, folderID, 0 으로 입력해 주시면 됩니다.

혹시 질문 있으시다면 댓글로 달아 주시면 친절히 답해 드리겠습니다.

var maxlevel = 0;
var filelist = [];

function fileList() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName('FileList');
  sh.clear();
  var root = DriveApp.getRootFolder().getId();
  getFileList('root', root, 0);
  sh.getRange(1, 1).setHorizontalAlignment('center');
  
  sh.getRange(1, 1).setValue('Folder');
  sh.getRange(1, 2).setValue('FileName');
  sh.getRange(1, 3).setValue('FileUrl');
  sh.getRange(1, 4).setValue('FileMimeType');
  sh.getRange(1, 5).setValue('Description');
  var row = 2;
  for(var i in filelist){
    sh.getRange(row, 1).setValue(filelist[i].folderName);
    sh.getRange(row, 2).setValue(filelist[i].fileName);
    sh.getRange(row, 3).setValue(filelist[i].fileUrl);
    sh.getRange(row, 4).setValue(filelist[i].fileMimeType);
    sh.getRange(row, 5).setValue(filelist[i].fileDescription);
    row++;
  }
  sh.getRange(2, 1, 5).sort(1);
}

function getFileList(name, id, level){
  if(maxlevel < level) maxlevel = level;
  var folder = DriveApp.getFolderById(id); // I change the folder ID  here 
  var subfolders = folder.getFolders();
  while(subfolders.hasNext()){
    subfolder = subfolders.next();
    getFileList(name + '\\' + subfolder.getName(), subfolder.getId(), ++level);
    level--;
  }
  var files = folder.getFiles();
  while(files.hasNext()){
    file = files.next();
    filelist.push({
      folderName: name, 
      fileName: file.getName(),
      fileUrl: file.getUrl(),
      fileMimeType: file.getMimeType(),
      fileDescription: file.getDescription() == null ? '' : file.getDescription()
    });
  }
}
블로그 이미지

ligilo

행복한 하루 되세요~

,

Google Document를 업무에 상당히 많이 사용하게 되면서 자동화 시킬 수 있는건 상당수의 업무를 자동화 시키고 있습니다. 특히 보안 업무를 하다보면 로그 데이터를 보게 되는 경우가 엄청 많은데요 이 과정에서 스크립트를 이용하면 엄청 업무가 편해집니다.(일부 개발을 해서 사용하는 경우도 있지만 대부분의 보안 담당자는 개발을 해 본 경험이 없기 때문에 가능하면 스크립트를 사용하려고 합니다. 제가 퇴사하고 나서도 봐줄수는 없으니까요...)

점검하다보면 날짜 기반의 검토가 필요한 경우가 있는데요 구글스크립트에서 날짜를 아무리 찍어봐도 계속 GMT+5의 시간이 나오고 있어 이걸 DB나 DW로 연결시키는데 틀어지는 부분이 계속해서 나타나고 있었습니다.

그래서 구글링을 한 결과 다음과 같이 변경하면 쉽게 대한민국 표준시로 변경해서 모든 작업을 수행할 수 있습니다.

일단 설정을 변경하기 전 화면을 보겠습니다.

보시다시피 GMT+5 기준의 시간이 나타나고 있습니다.

이걸 설정만 변경하면 대한민국 표준시로 변경할 수 있습니다.

1. 설정에서 '편집기에 appscript.json 매니페스트 파일 표시'에 체크합니다.

2. 다시 편집기로 돌아오면 appscript.json 파일이 보여지는데요 이 파일을 열어서 timeZone 부분을 변경합니다. 대한민국 표기는 'Asia/Seoul'입니다.

3. 설정 변경된 파일 저장 후 다시 설정에서 appscript.json 매니페스트 파일은 숨기셔도 괜찮습니다.

이렇게 하면 설정 변경이 끝납니다.

위 코드를 다시 실행시키면 다음과 같이 출력되는 모습을 볼 수 있습니다.

이걸 못찾아서 포맷도 변경했다가 데이터에서 시간 값을 추출한 후에 더하기도 해봤다가 별짓을 다 해봤네요..

혹시 이 부분때문에 고생하고 계신 분이 계셨다면 부디 도움이 되셨으면 좋겠습니다.

 

혹시 앱 스크립트 관련해서 이 글과 관련없는 부분이라도 모르는 부분이 있다면 댓글 또는 방명록에 글 남겨주시면 힘 닿는데까지 도와드리도록 하겠습니다.

블로그 이미지

ligilo

행복한 하루 되세요~

,