为什么试图在Excel API中锁定或解锁单元格区域时得到AccessDenied

问题描述 投票:0回答:1

错误:AccessDenied:您无法执行所请求的操作。

这是我尝试运行此代码时收到的错误消息...

...
var sheet = context.workbook.worksheets.getActiveWorksheet();
var entireRange = sheet.getRange();

entireRange.load(['address', 'format/protection/locked']);
sheet.load('protection/protected');
return context.sync()
    .then(
        function() {
            if (sheet.protection.protected) {
                sheet.protection.unprotect();
            } else {
                sheet.protection.protect();
                console.log(entireRange.format.protection.locked);
                entireRange.format.protection.locked = true;
            }
        }
    )
    .then(context.sync);
...

我正在尝试使用Office JS / Excel API创建Excel在线加载项。但是,在运行上述代码时出现AccessDenied错误。当我尝试设置锁定属性时会发生这种情况,但是在网上看到的其他示例中,这似乎是正确的方法?

javascript excel office-js office-addins excel-addins
1个回答
0
投票

返回“ AccessDenied”错误的原因是由于工作表是受保护的。您可以通过以下方式修改代码:

    1. Move "entireRange.format.protection.locked = true" before "sheet.protection.protect()"

    Or

    2. Allow format cells when sheet is protected
    sheet.protection.protect({
        allowFormatCells: true
    });
© www.soinside.com 2019 - 2024. All rights reserved.