메뉴 건너뛰기

app

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

lispro062013.12.17 02:30조회 수 1944댓글 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
2015.05.15 조회 1696
lispro06
2015.05.15 조회 1666
lispro06
2015.05.15 조회 2559
lispro06
2014.08.16 조회 1803
lispro06
2014.02.08 조회 4082
lispro06
2013.12.11 조회 1731
lispro06
2013.12.10 조회 3036
suritam9
2013.12.06 조회 2314
suritam9
2013.12.02 조회 3500
suritam9
2013.11.30 조회 2197
suritam9
2013.11.26 조회 1702
suritam9
2013.08.23 조회 7372
suritam9
2013.08.23 조회 1903
suritam9
2013.06.28 조회 2391
첨부 (0)
위로