Skip to main content
All docs
V25.1
  • Row

    WriteProtectionOptions Interface

    Contains write-protection options for a workbook.

    Namespace: DevExpress.Spreadsheet

    Assembly: DevExpress.Spreadsheet.v25.1.Core.dll

    NuGet Package: DevExpress.Spreadsheet.Core

    Declaration

    public interface WriteProtectionOptions

    The following members return WriteProtectionOptions objects:

    Remarks

    Write-protection options are ignored when you open a document in the WinForms or WPF Spreadsheet control. You can handle the SpreadsheetControl.DocumentLoaded event to check whether the document is write-protected (or its ReadOnlyRecommended option is enabled). If true, activate the control’s ReadOnly property.

    Make a Workbook Read-Only

    Use the WriteProtectionOptions.ReadOnlyRecommended option to make a workbook read-only.

    using(var workbook = new Workbook())
    {
        var wpOptions = workbook.DocumentSettings.WriteProtection;
        wpOptions.ReadOnlyRecommended = true;
        workbook.SaveDocument("WriteProtectedDocument.xlsx");
    }
    

    When users open this workbook in Microsoft® Excel®, it prompts them to open the document as read-only.

    Read-only workbook

    Specify a Password To Modify a Workbook

    Call the WriteProtectionOptions.SetPassword method to specify a password to prevent modifications from unauthorized users.

    using(var workbook = new Workbook())
    {
        var wpOptions = workbook.DocumentSettings.WriteProtection;
        wpOptions.SetPassword("Password");
        wpOptions.UserName = "John Smith";
        workbook.SaveDocument("WriteProtectedDocument.xlsx");
    }
    

    When users open this workbook in Microsoft® Excel®, it prompts them to enter a password to modify the document.

    Write-protection options for a workbook

    Clear a Password Used to Modify a Workbook

    The following code snippet uses the WriteProtectionOptions.CheckPassword method to check a given password. If the password is valid, WriteProtectionOptions.ClearPassword is called to remove write-protection from a workbook.

    using (Workbook workbook = new Workbook())
    {
        workbook.LoadDocument("WriteProtectedDocument.xlsx");
        RemoveWriteProtection(workbook, "password");
    }
    // ...
    
    private void RemoveWriteProtection(Workbook workbook, string password)
    {
        var wpOptions = workbook.DocumentSettings.WriteProtection;
        if (wpOptions.IsPasswordProtected && wpOptions.CheckPassword(password))
            wpOptions.ClearPassword();
        else
        {
            Console.WriteLine("The file is not write-protected or the specified password is invalid!");
            Console.ReadKey();
        }
    }
    
    See Also