DioDocs for Excel
DioDocs for Excel
ワークブックの保護
機能 > ワークブック > ワークブックの保護

DioDocs for Excelでは、他のユーザーと共有できない重要な機密情報が含まれているワークブックを保護できます。さらに、他のユーザーがワークブックに特定の操作を実行できないように、変更から保護することもできます。

このトピックでは、次のタスクについて説明します。

パスワードでワークブックの保護

DioDocs for Excel では、ワークブックをパスワードで暗号化して保護することができる強固なセキュリティが提供されています。これは、業務上重要なワークブックに共有範囲を制限したい機密データが含まれる場合は特に重要です。XlsxSaveOptionsクラスのPasswordプロパティを使用して、ワークブックを保護できます。

ワークブックをパスワードで保護する方法について、次のサンプルコードを参照してください。

C#
コードのコピー
//Excelファイルを保存し、パスワードで保護します
XlsxSaveOptions options = new XlsxSaveOptions();
options.Password = "123456";
workbook.Save(@"createWorkbook.xlsx", options);

変更からワークブックの保護

ワークブックは、データの変更または、構成やウィンドウの変更で編集されますので、以下の2つの方法でワークブックを保護できます。

ワークブックをデータ編集から保護する

ワークブックを参照のみに共有し、意図的または偶発的に不正な編集を行わせたくない場合があります。例えば、オフィス設置に発生した費用を保存したワークブックは、データをあらゆる改ざんから保護しながら、利害関係者と共有する必要があります。

DioDocs for Excelは、IWorkbookインタフェースのWriteProtectionクラスを提供し、ワークブックを保存する際保護オプションを設定できます。WriteProtectionクラスのReadOnlyRecommendedプロパティを使用することで、ユーザーにワークブックを読み取りモードで開くように推薦できます。WritePasswordプロパティを使用することで編集パスワードを設定できます。ユーザーに提供される編集パスワードが正しい場合、DioDocs for Excelはドキュメントを自動的に開きます。ただし、本動作をValidatePasswordプロパティの結果を使用することでカスタマイズできます。さらに、WriteProtectionクラスが提供するWriteReservedWriteReservedByプロパティを使用すると、ワークブックの保護状態と保護者を取得することが可能です。

次のサンプルコードは、ワークブックをデータ編集から保護する方法を示します。

C#
コードのコピー
//新しいワークブックを作成します
var workbook = new GrapeCity.Documents.Excel.Workbook();

//Excelファイルを開きます
workbook.Open("Medical office start-up expenses 1.xlsx");

//このワークブックに対する書き込みアクセス許可があるユーザーの名前を入力します
workbook.WriteProtection.WriteReservedBy = "Eric";

//このワークブックを読み取り専用として保存するように指定します
//Microsoft Excelは、ワークブックを読み取り専用として開くことを推奨するメッセージを表示します
workbook.WriteProtection.ReadOnlyRecommended = true;

//他のユーザーが意図的または誤ってデータを編集できないように、パスワードでワークブックを保護します
//書き込み保護は、Excelアプリケーションで開いた場合にのみ発生します
workbook.WriteProtection.WritePassword = "Y6dh!et5";

//ワークブックをxlsxに保存します
workbook.Save("createwriteprotectedworkbook.xlsx");

ワークブックを構成やウィンドウの編集から保護する

DioDocs for Excelでは、ワークブックを変更から保護することができます。または、本動作を行うには、パスワードを設定することもできます。

WorkbookクラスのProtectメソッドは、2つのオーバーロードを提供します。そのうち 1 つのオーバーロードは、パスワードをパラメータとして受け取ります。どちらのメソッドにも、「structure」と「windows」の2つのオプションパラメータがあり、さまざまな保護設定を提供します。

パスワードを使用してワークブックを変更から保護する方法について、次のコード例を参照してください。

C#
コードのコピー
//ワークブックを初期化します
Workbook workbook = new Workbook();

//ワークブックを保護して、他のユーザーが非表示のワークシートを表示したり、ワークシートを追加、移動、削除、非表示、または名前変更したりできないようにします
workbook.Protect("Ygs_87@ytr");
//ワークブックをxlsxに保存します
workbook.Save(@"ProtectWorkbookWithPassword.xlsx", SaveFileFormat.Xlsx);

パスワードを使用せずにワークブックを変更から保護する方法について、次のコード例を参照してください。

C#
コードのコピー
//ワークブックを初期化します
Workbook workbook = new Workbook();
//既存のワークシートを取得します
IWorksheet workSheet = workbook.Worksheets[0];

//ワークブックを保護して、他のユーザーが非表示のワークシートを表示したり、ワークシートを追加、移動、削除、非表示、または名前変更したりできないようにします
workbook.Protect();
//ワークブックをxlsxに保存します
workbook.Save(@"1-ProtectWorkbook.xlsx", SaveFileFormat.Xlsx);

ワークブックの保護の削除

WorkbookクラスのUnprotectメソッドを使用して、ワークブックから保護を削除できます。

保護を解除するために、Unprotectメソッドにパラメータとして正しいパスワード(Protectメソッドで設定されているパスワード)を渡す必要があります。パスワードが入力しないか、間違ったパスワードが渡される場合、「パスワードが正しくありません」例外が発生します。

パスワードを使用して変更から保護されているワークシートを保護解除するには、次のサンプルコードを参照してください。

C#
コードのコピー
//ワークブックを初期化します
Workbook workbook = new Workbook();

workbook.Protect("Ygs_87@ytr");
//保護をワークシートから解除します
workbook.Unprotect("Ygs_87@ytr");
//ワークブックをxlsxに保存します
workbook.Save(@"UnprotectWorkbookWithPassword.xlsx", SaveFileFormat.Xlsx);

ワークブックがパスワードで保護されていない場合は、パスワードの引数はUnprotectメソッドによって無視されます。

保護されたワークブックの保護を解除する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// ワークブックを初期化します
Workbook workbook = new Workbook();
// 既存のワークシートを取得します
IWorksheet workSheet = workbook.Worksheets[0];

workbook.Protect();
// 保護をワークシートから解除します
workbook.Unprotect();
// ワークブックをxlsxに保存します
workbook.Save(@"2-UnprotectWorkbook.xlsx", SaveFileFormat.Xlsx);