チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.XLS for .NET»保護»C#:Excel ファイルの保護・保護解除方法
2024-06-24

C#:Excel ファイルの保護・保護解除方法

Excel ファイルを他の人と共有したり、組織外にファイルを送信したりする場合、機密データを変更、移動、または削除されないように保護したい場合があります。内容の偶発的または意図的な変更を防止する最も簡単な方法は、ワークシートの編集を制限するか、ワークブック全体をパスワードで保護することです。この記事では、Spire.XLS for .NET を使用して、C# でワークブックやワークシートを保護したり保護解除したりする方法について説明します。

Spire.XLS for .NET をインストールします

まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.XLS

ワークブック全体をパスワードで保護する

Excel ドキュメントをパスワードで暗号化することで、あなた自身と権限を持つ個人だけがそのドキュメントを読んだり編集したりできるようになります。以下は、Spire.XLS for .NET を使用してワークブックをパスワードで保護する手順です。

  • Workbook のオブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドを使用して Excel ファイルをロードします。
  • Workbook.Protect() メソッドを使用して、パスワードを使用してワークブックを保護します。
  • Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
  • C#
using Spire.Xls;

namespace PasswordProtectWorkbook
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbookオブジェクトを作成します
            Workbook workbook = new Workbook();

            // Excelファイルをロードします
            workbook.LoadFromFile("Sample.xlsx");

            // パスワードでワークブックを保護します
            workbook.Protect("psd-123");

            // ワークブックを別のExcelファイルに保存します
            workbook.SaveToFile("暗号化されたワークブック.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

C#:Excel ファイルの保護・保護解除方法

特定の保護タイプでワークシートを保護する

Excel ドキュメントの閲覧は許可するが、ワークシートの変更は制限したい場合、特定の保護タイプでワークシートを保護することができます。以下の表は、SheetProtectionType 列挙の下で定義済みのさまざまな保護タイプの一覧です。

保護の種類 ユーザーができること
Content 内容を修正または挿入する。
DeletingColumns 列を削除する。
DeletingRows 行を削除する。
Filtering フィルターを設定する。
FormattingCells セルの書式を設定する。
FormattingColumns 列の書式を設定する。
FormattingRows 行の書式を設定する。
InsertingColumns 列を挿入する。
InsertingRows 行を挿入する。
InsertingHyperlinks ハイパーリンクを挿入する。
LockedCells ロックされたセルを選択する。
UnlockedCells ロックされていないセルを選択する。
Objects 描画オブジェクトを修正する。
Scenarios 保存されたシナリオを修正する。
Sorting データを並べ替える。
UsingPivotTables ピボットテーブルとピボットチャートを使用する。
All 保護されたワークシート上で上記の操作をすべて行う。
None 保護されたワークシート上で何も操作しない。

以下は、Spire.XLS for .NET を使用して、特定の保護タイプでワークシートを保護する手順です。

  • Workbook のオブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドを使用して Excel ファイルをロードします。
  • Workbook.Worksheets[index] プロパティで特定のワークシートを取得します。
  • Worksheet.Protect(string password, SheetProtectionType options) メソッドを使用して、特定の保護タイプでワークシートを保護します。
  • Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
  • C#
using Spire.Xls;

namespace ProtectWorksheetWithSpecificProtectionType
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbookオブジェクトを作成します
            Workbook workbook = new Workbook();

            // Excelファイルをロードします
            workbook.LoadFromFile("Sample.xlsx");

            // 特定のワークシートを取得します
            Worksheet worksheet = workbook.Worksheets[0];

            // パーミッションパスワードと特定の保護タイプでワークシートを保護します
            worksheet.Protect("psd-permission", SheetProtectionType.None);

            // ワークブックを別のExcelファイルに保存します
            workbook.SaveToFile("保護されたワークシート.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

C#:Excel ファイルの保護・保護解除方法

保護されたワークシートで特定の範囲の編集を許可する

場合によっては、保護されたワークシートで選択した範囲をユーザーが編集できるようにする必要があるかもしれません。以下の手順は、その方法を示しています。

  • Workbook のオブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドを使用して Excel ファイルをロードします。
  • Workbook.Worksheets[index] プロパティを使用して、特定のワークシートを取得します。
  • Worksheet.AddAllowEditRange() メソッドを使用して、編集可能なセル範囲を指定します。
  • Worksheet.Protect(string password, SheetProtectionType options) メソッドを使用して、保護タイプでワークシートを保護します。
  • Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
  • C#
using Spire.Xls;

namespace AllowEditRanges
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbookオブジェクトを作成します
            Workbook workbook = new Workbook();

            // Excelファイルをロードします
            workbook.LoadFromFile("Sample.xlsx");

            // 最初のワークシートを取得します
            Worksheet sheet = workbook.Worksheets[0];

            // 編集を許可する範囲を追加します
            sheet.AddAllowEditRange("範囲1", sheet.Range["A5:A6"]);
            sheet.AddAllowEditRange("範囲2", sheet.Range["A8:B11"]);

            // パスワードと保護タイプでワークシートを保護します
            sheet.Protect("psd-permission", SheetProtectionType.All);

            // ワークブックを別のExcelファイルに保存します
            workbook.SaveToFile("範囲の編集を許可.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

C#:Excel ファイルの保護・保護解除方法

パスワードで保護されたワークシートの保護解除

パスワードで保護されたワークシートの保護を解除するには、Worksheet.Unprotect() メソッドを呼び出し、元のパスワードをパラメータとして渡します。詳細な手順は以下のとおりです。

  • Workbook のオブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドを使用して Excel ファイルをロードします。
  • Workbook.Worksheets[index] プロパティを使用して、特定のワークシートを取得します。
  • Worksheet.Unprotect(string password) メソッドを使用して保護を解除します。
  • Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
  • C#
using Spire.Xls;

namespace UnprotectWorksheet
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbookオブジェクトを作成します
            Workbook workbook = new Workbook();

            // 保護されたワークシートを含むExcelファイルをロードします
            workbook.LoadFromFile("保護されたワークシート.xlsx");

            // 最初のワークシートを取得します
            Worksheet sheet = workbook.Worksheets[0];

            // 指定したパスワードを使用してワークシートの保護を解除します
            sheet.Unprotect("psd-permission");

            // ワークブックを別のExcelファイルに保存します
            workbook.SaveToFile("保護されていないワークシート.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

C#:Excel ファイルの保護・保護解除方法

暗号化されたワークブックのパスワードの削除と再設定

暗号化されたワークブックのパスワードを削除またはリセットするには、それぞれ Workbook.Unprotect() メソッドと Workbook.Protect() メソッドを使用します。以下のステップでは、暗号化されたExcelドキュメントをロードし、そのパスワードを削除または変更する方法を示します。

  • Workbook オブジェクトを作成します。
  • Workbook.OpenPassword プロパティで開くパスワードを指定します。
  • Workbook.LoadFromFile() メソッドを使用して暗号化されたExcelファイルをロードします。
  • Workbook.Unprotect() メソッドを使用して暗号化を解除します。または、Workbook.Protect() メソッドを使用してパスワードを変更します。
  • Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
  • C#
using Spire.Xls;

namespace RemoveOrResetPassword
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbookオブジェクトを作成します
            Workbook workbook = new Workbook();

            // 開くパスワードを指定します
            workbook.OpenPassword = "psd-123";

            // 暗号化されたExcelファイルをロードします
            workbook.LoadFromFile("Encrypted.xlsx");

            // ワークブックの保護を解除します
            workbook.UnProtect();

            // パスワードをリセットします
            // workbook.Protect("newpassword");

            // ワークブックを別のExcelファイルに保存します
            workbook.SaveToFile("保護されないワークブック.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 584 times