메뉴 건너뛰기

app

[GAS] 문서 리스트 출력 및 뷰어 추가, 제거

lispro062013.12.17 02:30조회 수 1799댓글 0

    • 글자 크기
리스팅을 할 때, 문서의 순번(인덱스)를 넣어줬다.
그렇지 않으면, 도저히 공유(해제)할 문서의 정보를 얻어올 방법이 없다.
출력할 대상 시트는 getSheets()[인덱스]로 지정하면 되고, 테스트한 문서는 두번째라 1을 넣었다.

function listFiles(){
     var ss = SpreadsheetApp.getActiveSpreadsheet();
     var sheet = ss.getSheets()[1];//현재 스프레드 시트에서 2번째 시트를 선택한다.
     var range = sheet.getRange(1,1,sheet.getMaxRows(), sheet.getMaxColumns());
  var files = DocsList.getFolderById('폴더 아이디').getFiles();
  var l =0;
  for (i in files) {
       range.getCell(l+2, 1).setValue(files[i].getName());
    editors = files[i].getEditors();
    for (j in editors){
      editor = editors + 'n';
    }
       range.getCell(l+2, 2).setValue(editor);
       range.getCell(l+2, 3).setValue(files[i].getOwner());
       range.getCell(l+2, 4).setValue(files[i].getFileType());
    viewers = files[i].getViewers();
    for (k in viewers){
      viewer = viewers + 'n';
    }
       range.getCell(l+2, 5).setValue(viewer);
       range.getCell(l+2, 6).setValue(files[i].getDateCreated());
       range.getCell(l+2, 7).setValue(i);
    Logger.log(files[i].getName());
    l = l+1;
  }
}
function addViewerByOrder(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var row = sheet.getActiveRange().getRow();
  var column = sheet.getActiveRange().getColumn();
  var cellvalue = ss.getActiveCell().getValue().toString();
  Logger.log(cellvalue);
  var files = DocsList.getFolderById('폴더 아이디').getFiles();
  if(files[cellvalue].getName()!=""){
    user = Browser.inputBox(files[cellvalue].getName()+'을 공유할 사용자 xxx@xxx.com 입력');//입력 상자로 공유 대상;
    if(user){
      files[Number(cellvalue)].addViewer(user);
      listFiles();
    }
  }else{
    ss.toast("순번의 한 셀을 선택해 주세요.");
  }
}
function removeViewerByOrder(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var row = sheet.getActiveRange().getRow();
  var column = sheet.getActiveRange().getColumn();
  var cellvalue = ss.getActiveCell().getValue().toString();
  Logger.log(cellvalue);
  var files = DocsList.getFolderById('폴더 아이디').getFiles();
  if(files[cellvalue].getName()!=""){
    user = Browser.inputBox(files[cellvalue].getName()+'을 공유 해제할 사용자 xxx@xxx.com 입력');//입력 상자로 공유 대상;
    if(user){
      files[Number(cellvalue)].removeViewer(user);
      listFiles();
    }
  }else{
    ss.toast("순번의 한 셀을 선택해 주세요.");
  }
}
lispro06 (비회원)
    • 글자 크기

댓글 달기

suritam9
2013.04.25 조회 6148
suritam9
2013.04.04 조회 2223
suritam9
2012.09.14 조회 2536
suritam9
2012.06.24 조회 2383
suritam9
2012.06.24 조회 2804
suritam9
2012.06.24 조회 2579
suritam9
2012.06.22 조회 2599
박영식
2011.09.22 조회 2562
박영식
2011.09.21 조회 2503
박영식
2011.02.18 조회 2978
박영식
2010.09.29 조회 4794
첨부 (0)
위로