我有一个关于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(台式机版本)。这是否有可能实现,或者我错过了一些可以实现相同结果的功能?
谢谢你的帮助。
密码保护在我们的API中不可用。您可以保护工作表以避免随意编辑,但不能用密码保护。原因是密码保护并非在所有端点上都可用(IIRC,Excel Online存在问题)。
如果要在UserVoice上提交建议错误,则可以查看我们是否考虑将密码保护作为仅限桌面的API进行。到目前为止,我们避免在Excel中执行这些操作,但是我确实知道Word已经完成了一些“ WordApiDesktop” API。因此,根据阻止您(和其他人)方案的程度,这可能是一个选择。在这种情况下,您将能够在台式机上进行密码保护和取消保护,但无法在线执行这些操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句