Excelファイルの保護と保護解除

Microsoft Excelは、組織内のデータを管理するための一般的なソフトウェアです。これは主に、高度なデータ操作および表現機能によるものです。この技術の時代では、ドキュメントは印刷されたコピーの代わりに事実上共有されます。これらのファイルには、複雑で機密性の高いデータが含まれている場合があります。したがって、そのようなファイルの整合性を維持するには、変更からファイルを保護する必要がある場合があります。 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ファイルを保護するための手順です。

次のコードサンプルは、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ファイルの保護を解除する手順です。

次のコードサンプルは、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ワークシートを保護してください。

次のコードサンプルは、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ワークシートの保護を解除するための手順です。

次のコードサンプルは、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を詳細に調べることができます。

関連項目