Protect Excel Workbook

8 Dec 20233 minutes to read

Workbooks are protected by its structure and window.

  • Workbook structure prevents from moving, deleting, hiding, unhiding, renaming, and inserting worksheets.
  • Protecting window will retain the size and position of a workbook whenever opened.

The following code shows how to protect Excel workbook with password using Interop and XlsIO for .NET.

Interop

private void ProtectWorkbook()
{
  //Instantiate the application object
  var excelApp = new Microsoft.Office.Interop.Excel.Application();

  //Add a workbook
  Workbook workbook = excelApp.Workbooks.Add(System.Reflection.Missing.Value);

  //Protect the workbook specifying a password with Boolean attributes for structure and windows protection
  workbook.Protect("007", true, true);

  //Save the file
  workbook.SaveAs("InteropOutput_ProtectedWorkbook.xlsx");

  //Quit the application
  excelApp.Quit();
}
Private Sub ProtectWorkbook()
  'Instantiate the application object
  Dim excelApp = New Microsoft.Office.Interop.Excel.Application()

  'Add a workbook
  Dim workbook As Workbook = excelApp.Workbooks.Add(System.Reflection.Missing.Value)

  'Protect the workbook specifying a password with Boolean attributes for structure and windows protection
  workbook.Protect("007", True, True)

  'Save the file
  workbook.SaveCopyAs("InteropOutput_ProtectedWorkbook.xlsx")

  'Quit the application
  excelApp.Quit()
End Sub

XlsIO

private void ProtectWorkbook()
{
  using (ExcelEngine excelEngine = new ExcelEngine())
  {
    //Instantiate the application object
    IApplication application = excelEngine.Excel;

    //Create a workbook
    IWorkbook workbook = application.Workbooks.Create(1);

    //Protect the workbook specifying a password with Boolean attributes for structure and windows protection
    bool isProtectWindow = true;
    bool isProtectContent = true;
    workbook.Protect(isProtectWindow, isProtectContent, "password");

    //Save the Excel file
    workbook.SaveAs("XlsIOOutput_ProtectedWorkbook.xlsx");
  }
}
Private Sub ProtectWorkbook()
  Using excelEngine As ExcelEngine = New ExcelEngine()
    'Instantiate the application object
    Dim application As IApplication = excelEngine.Excel

    'Create a workbook
    Dim workbook As IWorkbook = application.Workbooks.Create(1)

    'Protect the workbook specifying a password with Boolean attributes for structure and windows protection
    Dim isProtectWindow As Boolean = True
    Dim isProtectContent As Boolean = True
    workbook.Protect(isProtectWindow, isProtectContent, "password")

    'Save as Excel file
    workbook.SaveAs("XlsIOOutput_ProtectedWorkbook.xlsx")
  End Using
End Sub