메뉴 건너뛰기

app

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

lispro062013.12.17 02:30조회 수 1633댓글 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)

댓글 달기

lispro06
2014.08.16 조회 1606
lispro06
2014.02.08 조회 3845
lispro06
2013.12.11 조회 1516
lispro06
2013.12.10 조회 2773
suritam9
2013.12.06 조회 2088
suritam9
2013.12.02 조회 3211
이전 1 2 3 4 5 6 7 8 9 10... 15다음
첨부 (0)
위로