C#でワークブックにパスワードを設定する方法

C++でワークブックにパスワードを設定する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXLは、開発者がC#でExcelワークブックをパスワードで保護することを可能にします。Encryptメソッドに必要なパスワードを入力し、ワークブックを保存すると、即座に保護が適用されます。

クイックスタート: IronXLでワークブックのパスワードを暗号化する

わずか1つの簡単なステップで、IronXLは開発者にExcelワークブックの暗号化を可能にします―Interopなし、面倒なし。 Encryptメソッドにパスワードを入力し、ファイルを保存すると、すぐにワークブックが保護されます。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    var wb = WorkBook.Load("input.xlsx"); wb.Encrypt("MyStrongPass"); wb.SaveAs("input.xlsx");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer


パスワードで保護されたワークブックにアクセスするには?

保護されたスプレッドシートは、Loadメソッドの2番目のパラメータとしてパスワードを指定することで開くことができます。 例: WorkBook.Load("sample.xlsx", "Iron Software")。 This feature is essential when working with existing Excel files that have been secured by colleagues or automated processes.

ご注意正しいパスワードがないと保護されたスプレッドシートを開くことはできません

以下は、パスワードで保護されたワークブックにアクセスする方法を示す完全な例です:

using IronXL;

// Attempt to open a password-protected workbook
try 
{
    WorkBook protectedWorkBook = WorkBook.Load("encrypted_data.xlsx", "MySecretPass123!");

    // Access the first worksheet
    WorkSheet sheet = protectedWorkBook.WorkSheets[0];

    // Read data from protected file
    var cellValue = sheet["A1"].Value;
    Console.WriteLine($"Successfully accessed protected workbook. A1 contains: {cellValue}");
}
catch (Exception ex)
{
    Console.WriteLine($"Failed to open workbook: {ex.Message}");
}
using IronXL;

// Attempt to open a password-protected workbook
try 
{
    WorkBook protectedWorkBook = WorkBook.Load("encrypted_data.xlsx", "MySecretPass123!");

    // Access the first worksheet
    WorkSheet sheet = protectedWorkBook.WorkSheets[0];

    // Read data from protected file
    var cellValue = sheet["A1"].Value;
    Console.WriteLine($"Successfully accessed protected workbook. A1 contains: {cellValue}");
}
catch (Exception ex)
{
    Console.WriteLine($"Failed to open workbook: {ex.Message}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

間違ったパスワードを使用するとどうなりますか?

不正なパスワードが入力された場合、IronXLはNULLや空のワークブックを返すのではなく、例外をスローします。 この動作は、不正なアクセスの試みを防ぐことによってセキュリティを確保します。パスワードで保護されたワークブックの操作は、常にtry-catchブロックでラップして、認証の失敗を優雅に処理してください。 If you're building an application that processes multiple Excel files, consider implementing a retry mechanism with user prompts for password entry.

ワークブックを開く前にパスワードで保護されているかどうかを確認できますか?

残念ながら、Excelのファイル形式では、ファイルを開かずにパスワード保護の状態を確認することはできません。推奨されるアプローチは、まずパスワードなしで読み込みを試み、例外をキャッチし、必要であればパスワード付きで再試行することです。 This pattern works well when managing multiple worksheets with mixed protection levels.

ワークブックにパスワードを適用するには?

スプレッドシートをパスワードで保護するには、以下のコードに示すようにEncryptメソッドを使用します。

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-protect.cs
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open protected spreadsheet file
WorkBook protectedWorkBook = WorkBook.Load("sample.xlsx", "IronSoftware");

// Set protection for spreadsheet file
workBook.Encrypt("IronSoftware");

workBook.Save();
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open protected spreadsheet file
Dim protectedWorkBook As WorkBook = WorkBook.Load("sample.xlsx", "IronSoftware")

' Set protection for spreadsheet file
workBook.Encrypt("IronSoftware")

workBook.Save()
$vbLabelText   $csharpLabel

For more advanced scenarios, you can combine workbook encryption with worksheet-level protection:

using IronXL;
using System;

// Create a new workbook with sensitive financial data
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.CreateWorkSheet("FinancialData");

// Add sensitive data
sheet["A1"].Value = "Confidential Financial Report";
sheet["A3"].Value = "Revenue";
sheet["B3"].Value = 1250000;
sheet["A4"].Value = "Expenses";
sheet["B4"].Value = 750000;

// Apply formatting before encryption
sheet["B3:B4"].FormatCells.FormatString = "$#,##0.00";

// Encrypt the workbook with a strong password
workBook.Encrypt("F!n@nc3_S3cur3_2024");

// Save the encrypted workbook
workBook.SaveAs("financial_report_encrypted.xlsx");

Console.WriteLine("Workbook encrypted successfully!");
using IronXL;
using System;

// Create a new workbook with sensitive financial data
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.CreateWorkSheet("FinancialData");

// Add sensitive data
sheet["A1"].Value = "Confidential Financial Report";
sheet["A3"].Value = "Revenue";
sheet["B3"].Value = 1250000;
sheet["A4"].Value = "Expenses";
sheet["B4"].Value = 750000;

// Apply formatting before encryption
sheet["B3:B4"].FormatCells.FormatString = "$#,##0.00";

// Encrypt the workbook with a strong password
workBook.Encrypt("F!n@nc3_S3cur3_2024");

// Save the encrypted workbook
workBook.SaveAs("financial_report_encrypted.xlsx");

Console.WriteLine("Workbook encrypted successfully!");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

なぜパスワードは保存後にしか有効にならないのですか

Excelの暗号化処理はファイルの内部構造を変更するため、ディスクへの書き込みが必要です。 Save()またはSaveAs()を呼び出すまで、ワークブックは暗号化が適用されずにメモリ内に残ります。 このデザインでは、暗号化されたバージョンをコミットする前に、何度も修正を加えることができます。 When working with workbook metadata, remember to set all properties before applying encryption and saving.

どのようなパスワード強度を使用すべきですか?

ビジネスアプリケーションの場合は、以下のパスワードガイドラインに従ってください:

  • 12文字以上
  • 大文字と小文字の混在
  • 数字や特殊文字を含む
  • 辞書的な単語や予測可能なパターンは避けてください。
  • "MyExcel@Report#2024!"のようなパスフレーズの使用を検討してください。

When developing applications that export sensitive data to Excel, implement a password policy that enforces these requirements programmatically.

特定のワークシートのみをパスワードで保護できますか?

はい! IronXLはワークブックレベルとワークシートレベルの両方の保護をサポートしています。 ワークブックの暗号化が不正なファイルアクセスを防ぐ一方で、ワークシートの保護は特定のシートへの変更を防ぎます。 両方のアプローチを組み合わせることができます:

// Load workbook
WorkBook workBook = WorkBook.Load("multi_sheet_report.xlsx");

// Protect specific worksheets
workBook.WorkSheets["Summary"].ProtectSheet("SheetPass123");
workBook.WorkSheets["Details"].ProtectSheet("DetailPass456");

// Then encrypt the entire workbook
workBook.Encrypt("MasterPassword789!");

// Save with both protections
workBook.Save();
// Load workbook
WorkBook workBook = WorkBook.Load("multi_sheet_report.xlsx");

// Protect specific worksheets
workBook.WorkSheets["Summary"].ProtectSheet("SheetPass123");
workBook.WorkSheets["Details"].ProtectSheet("DetailPass456");

// Then encrypt the entire workbook
workBook.Encrypt("MasterPassword789!");

// Save with both protections
workBook.Save();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
C# code showing WorkBook.Load() and WorkBook.Encrypt() methods with file explorer displaying Excel files

ワークブックからパスワードを削除するには?

スプレッドシートからパスワードを削除するには、単にPasswordフィールドをnullに設定します。以下のコードで示します。

ご注意このアクションは、ワークブックにアクセスした後にのみ実行できます。 そのため、元のパスワードを知っておく必要があります。

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-unprotect.cs
// Remove protection for opened workbook. Original password is required.
workBook.Password = null;
' Remove protection for opened workbook. Original password is required.
workBook.Password = Nothing
$vbLabelText   $csharpLabel

以下は、パスワード保護を解除するための完全なワークフローを示す包括的な例です:

using IronXL;

// First, open the protected workbook with the correct password
WorkBook protectedWorkBook = WorkBook.Load("encrypted_report.xlsx", "CurrentPassword123");

// Perform any necessary operations
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["A1"].Value = "Updated after removing protection";

// Remove the password protection
protectedWorkBook.Password = null;

// Save the workbook without password protection
protectedWorkBook.SaveAs("unprotected_report.xlsx");

Console.WriteLine("Password protection removed successfully!");
using IronXL;

// First, open the protected workbook with the correct password
WorkBook protectedWorkBook = WorkBook.Load("encrypted_report.xlsx", "CurrentPassword123");

// Perform any necessary operations
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["A1"].Value = "Updated after removing protection";

// Remove the password protection
protectedWorkBook.Password = null;

// Save the workbook without password protection
protectedWorkBook.SaveAs("unprotected_report.xlsx");

Console.WriteLine("Password protection removed successfully!");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

パスワード保護はいつ解除すべきですか?

パスワードを削除する一般的なシナリオは以下のとおりです:

  • アーカイブ:ファイルレベルの暗号化が冗長な安全なストレージへのファイルの移動
  • System Integration: When automated processes need to import Excel data without manual intervention
  • コラボレーション: パスワードを必要としないチームメンバーとファイルを共有する。
  • マイグレーション:Excel 暗号化をサポートしないシステムで使用するために保護されたファイルを変換する

ワークブックのパスワード保護を解除する前に、必ず適切な権限を持っていることを確認してください。

IronXL provides the ability to protect and unprotect Excel workBooks and workSheets with a single line of C# code. For more advanced Excel security features, explore our guides on workbook metadata management and secure data handling practices.

よくある質問

C#でExcelワークブックをパスワードで保護するには?

IronXLでは、Encryptメソッドを使ってExcelワークブックをパスワードで保護することができます。ワークブックをロードし、wb.Encrypt("YourPassword")を呼び出し、ファイルを保存するだけです。このたった一つのメソッド呼び出しで、Microsoft Office Interopを必要とせずにExcelファイルを即座に保護することができます。

パスワードを知らなくてもパスワード保護されたExcelファイルを開くことはできますか?

保護されたExcelファイルを開くには正しいパスワードが必要です。パスワードで保護されたワークブックを読み込む場合は、2番目のパラメータとしてパスワードを指定する必要があります:WorkBook.Load("file.xlsx", "password")。正しいパスワードがないと、ファイルにアクセスできません。

保護されたワークブックを間違ったパスワードで開こうとするとどうなりますか?

IronXLは不正なパスワードが入力された場合、NULLや空のワークブックを返すのではなく、例外をスローします。このセキュリティ機能により、不正アクセスを防ぐことができます。パスワードで保護されたワークブックの操作は、常にtry-catchブロックでラップして、認証の失敗を優雅に処理してください。

Excelファイルを開く前に、パスワードで保護されているかどうかを確認する方法を教えてください。

Excelのファイル形式では、ファイルを開かずにパスワード保護の状態を確認することはできません。IronXLでは、まずパスワードなしでファイルを読み込んでみて、例外をキャッチし、必要であればパスワード付きで再試行することを推奨します。

Excelワークブックのパスワード保護を解除できますか?

はい、IronXLではワークブックのパスワード保護を解除することができます。まず、WorkBook.Load("file.xlsx", "password")を使用して正しいパスワードで保護されたワークブックをロードし、暗号化せずに保存して保護されていないバージョンを作成します。

パスワード保護は、すべてのExcelファイル形式で機能しますか?

IronXLは.xlsxや.xlsmファイルを含む最新のExcel形式のパスワード保護をサポートしています。この暗号化機能は、Microsoft Officeをシステムにインストールすることなく、異なるExcelのバージョン間でシームレスに動作します。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 1,765,830 | バージョン: 2025.12 リリース