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();
}
}
}
特定の保護タイプでワークシートを保護する
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();
}
}
}
保護されたワークシートで特定の範囲の編集を許可する
場合によっては、保護されたワークシートで選択した範囲をユーザーが編集できるようにする必要があるかもしれません。以下の手順は、その方法を示しています。
- 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();
}
}
}
パスワードで保護されたワークシートの保護解除
パスワードで保護されたワークシートの保護を解除するには、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();
}
}
}
暗号化されたワークブックのパスワードの削除と再設定
暗号化されたワークブックのパスワードを削除またはリセットするには、それぞれ 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 日間有効な一時ライセンスを取得してください。