메뉴 건너뛰기

app

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

lispro062013.12.17 02:30조회 수 1929댓글 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 조회 1676
lispro06
2015.05.15 조회 1650
lispro06
2015.05.15 조회 2541
lispro06
2014.08.16 조회 1793
lispro06
2014.02.08 조회 4053
lispro06
2013.12.11 조회 1712
lispro06
2013.12.10 조회 3015
suritam9
2013.12.06 조회 2295
suritam9
2013.12.02 조회 3483
suritam9
2013.11.30 조회 2188
suritam9
2013.11.26 조회 1684
suritam9
2013.08.23 조회 7348
suritam9
2013.08.23 조회 1891
suritam9
2013.06.28 조회 2368
첨부 (0)
위로