메뉴 건너뛰기

app

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

lispro062013.12.17 02:30조회 수 1618댓글 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 (비회원)
    • 글자 크기
[XE] 최근 게시글 정보(document_srl) 가져오기 in 애드온 (by lispro06) [GAS] 구글 폼에서 시트 값을 참조해 리스트에 적용 (by lispro06)

댓글 달기

이전 1 2 3 4 5 6 7 8 9 10... 14다음
첨부 (0)
위로