2016-08-09 8 views
1

...엑셀 오피스 추가 기능 API 워크 시트 보호 암호 나 Excel의 워크 시트 보호에 관한 질문이

컨텍스트 내가 편집 할 수있는 다른 사용자 그룹에 사용할 다른 워크 시트가 필요하지만, 모든 그룹은 분에서해야한다는 것입니다 예를 들어 모든 시트를보기 usergroup1은 시트 2와 시트 3을 편집 할 수 있으며 시트 1의 일부만 편집 할 수 있습니다. usergroup2는 시트 1 만 편집 할 수 있습니다.

FormatProtection (range.format.protection.locked = false;)과 WorksheetProtection (worksheet.protection.protect();)을 활성화 할 수 있지만 워크 시트 보호에 대한 API를 통해 암호를 설정할 수있는 권한이없는 것 같습니다. 예를 들어 두 그룹 모두 검토 리본의 시트 보호 해제 옵션을 클릭하고 원하지 않는 시트를 편집 할 수 있습니다.

아래의 문서를 살펴 보았지만 불행히도 사용하지 못했습니다. 예를 들어

  • https://github.com/OfficeDev/office-js-docs/blob/master/reference/excel/worksheetprotection.md
    • http://dev.office.com/reference/add-ins/excel/worksheetprotection가, 여기에 내가 원하는 함수를 완료하는 것입니다

      function CopyWorksheet() { 
      
           var newAddress; 
      
           Excel.run(function (ctx) { 
      
            var worksheet = ctx.workbook.worksheets.getActiveWorksheet(); 
            var range = worksheet.getUsedRange(); 
            range.load(); 
      
            // insert new worksheet 
            var newWorksheetName = "Copied_Sheet";    
            var newWorksheet = ctx.workbook.worksheets.add(newWorksheetName); 
      
            return ctx.sync().then(function() { 
      
             // copy the old values to the new worksheet 
             newAddress = range.address.substring(range.address.indexOf("!") + 1); 
             newWorksheet.getRange(newAddress).values = range.values; 
             newWorksheet.getRange(newAddress).formulas = range.formulas; 
             newWorksheet.getRange(newAddress).text = range.text; 
      
             // protect both worksheets 
             worksheet.protection.protect(); 
             newWorksheet.protection.protect(); 
      
             // requirement here to set a password so that no one can 
             // edit the worksheets by selecting 'Unprotect Sheet' in excel 
             // ... 
            }) 
            .then(ctx.sync)}) 
            .catch(function(error) { 
              console.log("Error: " + error);      
            }); 
           } 
      

      을 현재 I 2016 Excel을 사용하고 있습니다 (바탕 화면 번역). 구현이 가능합니까 아니면 동일한 결과를 얻을 수있는 몇 가지 기능을 놓친 적이 있습니까?

      도움 주셔서 감사합니다.

    +0

    지금까지 해보신 것은 무엇입니까? 더 많은 코드를 보여주십시오. 실제 프로그래밍에 대한 자세한 내용은 거의 알려지지 않았습니다. –

    +0

    @Tom 빠른 응답을 해주셔서 감사합니다. 추가 컨텍스트에 대한 게시물에 몇 가지 코드를 추가했습니다. – Nigel

    답변

    2

    암호 보호는 Google API에서 사용할 수 없습니다. 임시 편집을 피하기 위해 시트를 보호 할 수 있지만 암호로 보호 할 수는 없습니다. 그 이유는 모든 엔드 포인트 (IIRC, Excel Online에 문제가 있음)에서 암호 보호를 사용할 수 없기 때문입니다.

    UserVoice에 제안 버그를 신고하려면 암호 전용을 데스크톱 전용 API로 간주 할 수 있습니다. 지금까지 Excel에서 이러한 작업을 수행하지 않았지만 Word에서 몇 가지 "WordApiDesktop"API를 수행 한 것으로 알고 있습니다. 그래서 당신의 (그리고 다른 사람들의) 시나리오가 얼마나 많이 차단되는지에 따라 옵션이 될 수도 있습니다. 이 경우 데스크톱에서 비밀번호로 보호하거나 보호 해제 할 수는 있지만 해당 작업을 온라인으로 수행 할 수는 없습니다.