パスワードで保護されたExcelファイルは暗号化されているため、そのままではWorkbook.Load()メソッドにてWorkbookインスタンス化することができません。
WorkbookLoadOptionsのOpenPasswordプロパティにパスワードを設定し、Workbook.Load()メソッドの引数に渡すことで暗号化されたExcelファイルを読み込み、Workbookインスタンスとして編集することができます。
//パスワードで保護されたExcelファイルを読み込みます。 FileStream inputStream = new FileStream(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "wwwroot") + "/BookWithPassword.xlsx", FileMode.Open); //ワークブックを開くためにはOpenPasswordを設定したWorkbookLoadOptionsとともにWorkbook.Load()メソッドを実行します。 WorkbookLoadOptions options = new WorkbookLoadOptions(); options.OpenPassword = "MyPassword"; Workbook workbook = Workbook.Load(inputStream, options);
こうして生成したWorkbookは従来の方法で編集することができます。
//セルの値を編集します。 workbook.Worksheets[0].GetCell("A2").Value = "UPDATED";
また、Workbook.Save()を実行すれば、もとのパスワードのまま保存することができます。
//編集したワークブックをMemoryStreamに保存します。 using var memStream = new MemoryStream(); workbook.Save(memStream);
尚、Blazor Web Assemblyアプリではパスワードを扱うために使用するマイクロソフトのCryptoコードがサポートされておらず、現在パスワードで保護されたExcelファイルを扱うことができません。