Microsoft Excelは、組織内のデータを管理するための一般的なソフトウェアです。これは主に、高度なデータ操作および表現機能によるものです。この技術の時代では、ドキュメントは印刷されたコピーの代わりに事実上共有されます。これらのファイルには、複雑で機密性の高いデータが含まれている場合があります。したがって、そのようなファイルの整合性を維持するには、変更からファイルを保護する必要がある場合があります。 Excelの保護機能は、この目的に役立ちます。この記事では、C++を使用してプログラムでExcelファイルを保護および保護解除する方法を学習します。
- Excelファイルを保護および保護解除するC++API
- C++を使用してExcelファイルを保護する
- C++を使用してExcelブックの保護を解除する
- C++を使用してExcelワークシートを保護する
- C++を使用してExcelワークシートの保護を解除する
- 無料ライセンスを取得する
Excelファイルを保護および保護解除するC++API-無料ダウンロード
Aspose.Cells for C++はネイティブC++ライブラリであり、MicrosoftExcelをインストールしなくてもExcelファイルを操作できます。したがって、多くのExcelワークフローを自動化するために使用されます。 APIは、Excelファイルの保護と保護解除など、多数の便利な機能を提供します。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Cells.Cpp
C++を使用してExcelファイルを保護する
Aspose.Cells for C++は、Excelファイルを保護するために次の保護タイプを提供します。
- すべて:ユーザーが何も変更できないように、データ全体を保護します。
- 内容:ワークシートの内容を保護します。
- オブジェクト:ユーザーが図面オブジェクトを変更できないように、ワークシート内のオブジェクトを保護します。
- シナリオ:ワークシートのシナリオを保護します。
- 構造:ブックの構造を保護します。
- Windows:保存されたウィンドウを変更から保護します。
- なし:保護は適用されません。
以下は、C++を使用してExcelファイルを保護するための手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->Protect(Aspose::Cells::ProtectionTypeprotectionType、intrusive_ptr)でファイルを保護しますAspose::Cells::Systems::Stringパスワード)メソッド。
- 保護されたExcelファイルをIWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
次のコードサンプルは、C++を使用してExcelファイルを保護する方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));
// 保護タイプを指定してブックを保護する
workbook->Protect(ProtectionType::ProtectionType_All, new String("12345"));
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protected_out.xlsx")));
C++を使用してExcelブックの保護を解除する
以下は、Excelファイルの保護を解除する手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->Unprotect(intrusive_ptrAspose::Cells::Systems::Stringパスワード)メソッド。
- IWorkbook->GetISettings()->SetPassword(intrusive_ptr)を使用してパスワードをNULLに設定しますAspose::Cells::Systems::String値)メソッド。
- 保護されていないExcelファイルをIWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
次のコードサンプルは、Excelファイルの保護を解除する方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtected.xlsx")));
// ブックの保護を解除する
workbook->Unprotect(new String("12345"));
// パスワードをnullに設定
workbook->GetISettings()->SetPassword(NULL);
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotected_out.xlsx")));
C++を使用してExcelワークシートを保護する
Excelファイルを保護するだけでなく、個々のワークシートを保護することもできます。次の手順を使用して、Excelワークシートを保護してください。
- まず、IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、ワークシートコレクションから保護するワークシートを取得します。
- IWorksheet->GetIProtection()メソッドを使用してワークシートの保護を取得します。
- SetAllowEditingContent(bool value)などの保護オプションを設定します。
- IProtection->SetPassword(intrusive_ptr)を使用してパスワードを設定しますAspose::Cells::Systems::String値)メソッド。
- 最後に、IWorkbook->Save(intrusive_ptr)を使用して、保護されたワークシートとともにExcelファイルを保存します。Aspose::Cells::Systems::String fileName)メソッド。
次のコードサンプルは、Excelワークシートを保護する方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));
// Excelファイルの最初のワークシートにアクセスする
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// ワークシートの保護にアクセスする
intrusive_ptr<IProtection> protection = worksheet->GetIProtection();
// 次の3つの方法は、Excel2000以前の形式のみを対象としています。
protection->SetAllowEditingContent(false);
protection->SetAllowEditingObject(false);
protection->SetAllowEditingScenario(false);
// 最初のワークシートをパスワード「12345」で保護します
protection->SetPassword(new String("12345"));
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protectedWorksheet_out.xlsx")));
C++を使用してExcelワークシートの保護を解除する
以下は、Excelワークシートの保護を解除するための手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して保護されたワークシートにアクセスします。
- IWorksheet->Unprotect(intrusive_ptr)を使用してワークシートの保護を解除しますAspose::Cells::Systems::Stringパスワード)メソッド。
- 最後に、IWorkbook->Save(intrusive_ptr)を使用して、保護されていないワークシートでExcelファイルを保存しますAspose::Cells::Systems::StringfileName)メソッド。
次のコードサンプルは、C++を使用してExcelワークシートの保護を解除する方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtectedWorksheet.xlsx")));
// Excelファイルの最初のワークシートにアクセスする
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// ワークシートの保護を解除する
worksheet->Unprotect(new String("12345"));
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotectedWorksheet_out.xlsx")));
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、C++を使用してExcelファイルを保護および保護解除する方法を学習しました。それに加えて、ワークシートを変更から保護する方法も学びました。 Aspose.Cells for C++は、セル内のテキストの置換やグラフやチャートで表される複雑なデータの処理などのタスクを自動化するための広大なExcel操作APIです。 公式ドキュメントを使用して、APIを詳細に調べることができます。