Excel Office加载项API工作表保护密码

奈杰尔

我有一个关于Excel工作表保护的问题...

上下文是,我需要为不同的用户组提供不同的工作表才能进行编辑,但所有组必须至少查看所有工作表,例如usergroup1可以编辑第二个工作表和第三个工作表以及第一工作表的一部分,usergroup2只能编辑一个工作表。

我可以相应地设置FormatProtection(range.format.protection.locked = false;)和WorksheetProtection(worksheet.protection.protect();)来启用此功能,但是我似乎无法通过针对工作表保护的API来设置密码?例如,这意味着,这两个组都可以简单地单击查看功能区中的“取消保护图纸”选项,然后编辑我不希望他们使用的图纸。

我尝试过下面的文档,但不幸的是没有用。

例如,这是我要完成的功能:

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);                     
            });
        }

当前,我正在使用Excel 2016(台式机版本)。这是否有可能实现,或者我错过了一些可以实现相同结果的功能?

谢谢你的帮助。

迈克尔·兹拉科夫斯基(Michael Zlatkovsky)-微软

密码保护在我们的API中不可用。您可以保护工作表以避免随意编辑,但不能用密码保护。原因是密码保护并非在所有端点上都可用(IIRC,Excel Online存在问题)。

如果要在UserVoice上提交建议错误,则可以查看我们是否考虑将密码保护作为仅限桌面的API进行。到目前为止,我们避免在Excel中执行这些操作,但是我确实知道Word已经完成了一些“ WordApiDesktop” API。因此,根据阻止您(和其他人)方案的程度,这可能是一个选择。在这种情况下,您将能够在台式机上进行密码保护和取消保护,但无法在线执行这些操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

密码保护工作表Excel VBA

Excel - VBA - 加载项 - 工作表

Excel:查找谁的密码保护了书中的单个工作表

密码仅保护 Excel VBA 中的某些工作表

Microsoft Office.js Excel加载项-使用javascript / react检索工作表/工作簿的唯一ID

用于Excel的工作簿级别的Office加载项

Office 2013的Excel加载项

如何在Excel加载项中检索隐藏的工作表?

读取受密码保护的工作表(版本-Excel 95,97-2003)Java

在Linux上的Python中使用受密码保护的Excel工作表

Excel VBA-检查工作表是否受密码保护

使用 vb 脚本保存 Excel 工作表后如何用密码保护它们

很简单,但这不会在受保护的Excel工作表上输入密码

如果工作表名称中有连字符 (-),Office.js Excel 加载项命名绑定将不起作用

无法完全保护Excel工作表

保护已导出的新 Excel 工作表

MS Excel自动保护工作表

受Excel保护的工作表BeforeDoubleClick事件

SAS使用DDE保护Excel工作表

Excel VBA-工作表保护太快

在 excel 工作表上创建定时保护事件取消保护

通过Office.js API将customXmlParts与Excel加载项一起使用

具有要求Excel JS API 1.9的方法的Office加载项在Office 2016上运行。这怎么可能?

VBA Excel保护表

从其他 VBA 项目隐藏 Excel 加载项中的工作表

如何加载特定的Excel工作表?

excel批量加载特定工作表

如何通过使用Excel VBA宏使Excel工作表受保护和不受保护?

重新定位滚动条 - Excel Office 加载项