パスワードで保護された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ファイルを扱うことができません。

Tagged:

製品について

Ignite UI for Blazor