officefileapi-403011-spreadsheet-document-api-examples-protection-how-to-write-protect-a-workbook.md
Use the Workbook.DocumentSettings.WriteProtection property to return write-protection options for a document.
Enable 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");
}
Using workbook As New Workbook()
Dim wpOptions As WriteProtectionOptions = workbook.DocumentSettings.WriteProtection
wpOptions.ReadOnlyRecommended = True
workbook.SaveDocument("WriteProtectedDocument.xlsx")
End Using
When users open this workbook in Microsoft® Excel®, it prompts them to open the document as read-only.
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");
}
Using workbook As New Workbook()
Dim wpOptions As WriteProtectionOptions = workbook.DocumentSettings.WriteProtection
wpOptions.SetPassword("Password")
wpOptions.UserName = "John Smith"
workbook.SaveDocument("WriteProtectedDocument.xlsx")
End Using
When users open this workbook in Microsoft® Excel®, it prompts them to enter a password to modify the document.
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();
}
}
Using workbook As New Workbook()
workbook.LoadDocument("WriteProtectedDocument.xlsx")
RemoveWriteProtection(workbook, "password")
End Using
' ...
Private Sub RemoveWriteProtection(workbook As Workbook, password As String)
Dim wpOptions As WriteProtectionOptions = workbook.DocumentSettings.WriteProtection
If wpOptions.IsPasswordProtected AndAlso wpOptions.CheckPassword(password) Then
wpOptions.ClearPassword()
Else
Console.WriteLine("The file is not write-protected or the specified password is invalid!")
Console.ReadKey()
End If
End Sub