ExcelScript.WorksheetProtection interface

表示工作表对象的保护。

注解

示例

/**
 * This script pauses the protection of a worksheet by using the provided password.
 * This password could come from a Power Automate flow.
 */
function main(workbook: ExcelScript.Workbook, password: string) {
  // Get the worksheet named "Sales".
  const sheet = workbook.getWorksheet("Sales");
  const protection: ExcelScript.WorksheetProtection = sheet.getProtection();
  
  // Check if the provided password works.
  if (protection.checkPassword(password)) {
    protection.pauseProtection(password);

    // Edit the worksheet...

    protection.resumeProtection();
  } else {
    console.log("Incorrect password");
  }
}

方法

addAllowEditRange(title, rangeAddress, options)

AllowEditRange将 对象添加到工作表。 必须禁用或暂停工作表保护才能使此方法正常工作。 如果工作表保护已启用且未暂停,则此方法将 AccessDenied 引发错误,并且添加操作失败。

checkPassword(password)

指定密码是否可用于解锁工作表保护。 此方法不会更改工作表保护状态。 如果输入了密码,但无需密码即可解锁工作表保护,则此方法将返回 false。

getAllowEditRange(key)

AllowEditRange按标题获取对象。

getAllowEditRanges()

指定 AllowEditRangeCollection 在此工作表中找到的对象。 这是对象的集合 AllowEditRange ,这些对象使用工作表保护属性。 启用工作表保护后, AllowEditRange 可以使用 对象来允许编辑特定区域,同时对工作表的其余部分保持保护。

getCanPauseProtection()

指定是否可以暂停此工作表的保护。

getIsPasswordProtected()

指定工作表是否受密码保护。

getIsPaused()

指定工作表保护是否暂停。

getOptions()

指定工作表的保护选项。

getProtected()

指定工作表是否受保护。

getSavedOptions()

指定工作表中保存的保护选项。 无论工作表保护状态如何,都将返回相同的 WorksheetProtectionOptions 对象。

pauseProtection(password)

暂停当前会话中用户的给定工作表对象的工作表保护。 如果未启用工作表保护或已暂停,则此方法不执行任何操作。 如果密码不正确,则此方法将引发错误 InvalidArgument ,无法暂停保护。 如果未启用工作表保护或已暂停,则此方法不会更改保护状态。

pauseProtectionForAllAllowEditRanges(password)

暂停此工作表中找到的所有 AllowEditRange 对象的工作表保护,这些对象具有当前会话中用户的给定密码。 如果未启用工作表保护或暂停,则此方法不执行任何操作。 如果工作表保护无法暂停,此方法将引发错误 UnsupportedOperation ,并且无法暂停对区域的保护。 如果密码与集合中的任何对象都不匹配 AllowEditRange ,则此方法将引发错误 BadPassword ,并且无法暂停对集合中任何范围的保护。

protect(options, password)

保护 worksheet。 如果工作表已受保护,则失败。

resumeProtection()

为给定会话中的用户恢复给定 worksheet 对象的工作表保护。 必须暂停工作表保护才能使此方法正常工作。 如果未暂停工作表保护,则此方法不会更改工作表的保护状态。

setPassword(password)

更改与 WorksheetProtection 对象关联的密码。 将密码设置为空字符串 (“”) 或 将 null 删除对象中的 WorksheetProtection 密码保护。 必须启用和暂停工作表保护才能使此方法正常工作。 如果禁用工作表保护,此方法将引发错误 InvalidOperation ,无法更改密码。 如果启用了工作表保护但未暂停,此方法将 AccessDenied 引发错误,无法更改密码。

unprotect(password)

解除对 worksheet 的保护。

updateOptions(options)

更改与 对象关联的 WorksheetProtection 工作表保护选项。 必须禁用或暂停工作表保护才能使此方法正常工作。 如果工作表保护已启用且未暂停,此方法将引发错误 AccessDenied ,无法更改工作表保护选项。

方法详细信息

addAllowEditRange(title, rangeAddress, options)

AllowEditRange将 对象添加到工作表。 必须禁用或暂停工作表保护才能使此方法正常工作。 如果工作表保护已启用且未暂停,则此方法将 AccessDenied 引发错误,并且添加操作失败。

addAllowEditRange(
            title: string,
            rangeAddress: string,
            options?: AllowEditRangeOptions
        ): void;

参数

title

string

要添加的 AllowEditRange 对象的标题字符串。

rangeAddress

string

要添加的对象 AllowEditRange 的范围地址。

options
ExcelScript.AllowEditRangeOptions

要添加到 对象的其他 AllowEditRange 选项,例如密码。

返回

void

示例

/**
 * This script adds a password-protected, editable range
 * to an otherwise protected worksheet.
 */
function main(workbook: ExcelScript.Workbook, password: string) {
    // Get the protection object for the "Data" worksheet.
    const dataSheet = workbook.getWorksheet("Data");
    const sheetProtection = dataSheet.getProtection();

    // Set the password needed to edit the range to be the user provided string.
    const editRangeProperties : ExcelScript.AllowEditRangeOptions = {
        password: password
    };

    // Set range "D2:D6" to be editable if the password is provided.
    sheetProtection.addAllowEditRange("Notes Section", "D2:D6", editRangeProperties);
    
    // Protect the worksheet.
    sheetProtection.protect();
}

checkPassword(password)

指定密码是否可用于解锁工作表保护。 此方法不会更改工作表保护状态。 如果输入了密码,但无需密码即可解锁工作表保护,则此方法将返回 false。

checkPassword(password?: string): boolean;

参数

password

string

针对受保护的工作表检查的密码。

返回

boolean

getAllowEditRange(key)

AllowEditRange按标题获取对象。

getAllowEditRange(key: string): AllowEditRange | undefined;

参数

key

string

AllowEditRange标题。

返回

getAllowEditRanges()

指定 AllowEditRangeCollection 在此工作表中找到的对象。 这是对象的集合 AllowEditRange ,这些对象使用工作表保护属性。 启用工作表保护后, AllowEditRange 可以使用 对象来允许编辑特定区域,同时对工作表的其余部分保持保护。

getAllowEditRanges(): AllowEditRange[];

返回

getCanPauseProtection()

指定是否可以暂停此工作表的保护。

getCanPauseProtection(): boolean;

返回

boolean

getIsPasswordProtected()

指定工作表是否受密码保护。

getIsPasswordProtected(): boolean;

返回

boolean

getIsPaused()

指定工作表保护是否暂停。

getIsPaused(): boolean;

返回

boolean

getOptions()

指定工作表的保护选项。

getOptions(): WorksheetProtectionOptions;

返回

getProtected()

指定工作表是否受保护。

getProtected(): boolean;

返回

boolean

getSavedOptions()

指定工作表中保存的保护选项。 无论工作表保护状态如何,都将返回相同的 WorksheetProtectionOptions 对象。

getSavedOptions(): WorksheetProtectionOptions;

返回

pauseProtection(password)

暂停当前会话中用户的给定工作表对象的工作表保护。 如果未启用工作表保护或已暂停,则此方法不执行任何操作。 如果密码不正确,则此方法将引发错误 InvalidArgument ,无法暂停保护。 如果未启用工作表保护或已暂停,则此方法不会更改保护状态。

pauseProtection(password?: string): void;

参数

password

string

与受保护的工作表关联的密码。

返回

void

pauseProtectionForAllAllowEditRanges(password)

暂停此工作表中找到的所有 AllowEditRange 对象的工作表保护,这些对象具有当前会话中用户的给定密码。 如果未启用工作表保护或暂停,则此方法不执行任何操作。 如果工作表保护无法暂停,此方法将引发错误 UnsupportedOperation ,并且无法暂停对区域的保护。 如果密码与集合中的任何对象都不匹配 AllowEditRange ,则此方法将引发错误 BadPassword ,并且无法暂停对集合中任何范围的保护。

pauseProtectionForAllAllowEditRanges(password: string): void;

参数

password

string

对对象暂停保护 AllowEditRange 的密码。

返回

void

protect(options, password)

保护 worksheet。 如果工作表已受保护,则失败。

protect(options?: WorksheetProtectionOptions, password?: string): void;

参数

options
ExcelScript.WorksheetProtectionOptions

可选。 工作表保护选项。

password

string

可选。 工作表保护密码。

返回

void

示例

/**
 * This script protects cells from being selected on the current worksheet.
 */
function main(workbook: ExcelScript.Workbook) {
  // Get the protection settings for the current worksheet.
  const currentSheet = workbook.getActiveWorksheet();
  const sheetProtection = currentSheet.getProtection();

  // Create a new WorksheetProtectionOptions object with the selectionMode property set to `none`.
  let protectionOptions : ExcelScript.WorksheetProtectionOptions = {
    selectionMode: ExcelScript.ProtectionSelectionMode.none
  }

  // Apply the given protection options.
  sheetProtection.protect(protectionOptions);
}

resumeProtection()

为给定会话中的用户恢复给定 worksheet 对象的工作表保护。 必须暂停工作表保护才能使此方法正常工作。 如果未暂停工作表保护,则此方法不会更改工作表的保护状态。

resumeProtection(): void;

返回

void

setPassword(password)

更改与 WorksheetProtection 对象关联的密码。 将密码设置为空字符串 (“”) 或 将 null 删除对象中的 WorksheetProtection 密码保护。 必须启用和暂停工作表保护才能使此方法正常工作。 如果禁用工作表保护,此方法将引发错误 InvalidOperation ,无法更改密码。 如果启用了工作表保护但未暂停,此方法将 AccessDenied 引发错误,无法更改密码。

setPassword(password?: string): void;

参数

password

string

WorksheetProtection 对象关联的密码。

返回

void

unprotect(password)

解除对 worksheet 的保护。

unprotect(password?: string): void;

参数

password

string

工作表保护密码。

返回

void

updateOptions(options)

更改与 对象关联的 WorksheetProtection 工作表保护选项。 必须禁用或暂停工作表保护才能使此方法正常工作。 如果工作表保护已启用且未暂停,此方法将引发错误 AccessDenied ,无法更改工作表保护选项。

updateOptions(options: WorksheetProtectionOptions): void;

参数

options
ExcelScript.WorksheetProtectionOptions

与 对象关联的 WorksheetProtection 选项接口。

返回

void