Aspose.Cells を使用してワークシートの行を保護する

導入

Excel ファイルをプログラムで操作する場合、多くの場合、データ操作だけでなくデータ保護も必要になります。機密データを保護する必要がある場合でも、誤って編集されないようにする必要がある場合でも、ワークシートの行を保護することは重要なステップです。このチュートリアルでは、Aspose.Cells for .NET を使用して Excel ワークシートの特定の行を保護する方法について詳しく説明します。環境の準備から保護機能の実装まで、必要なすべての手順をシンプルでわかりやすい方法で説明します。

前提条件

ワークシート内の行を保護する前に、いくつかの準備が必要です。

  1. Aspose.Cells for .NET: 開発マシンにAspose.Cells for .NETがインストールされていることを確認してください。まだインストールしていない場合は、以下のサイトから簡単にダウンロードできます。Aspose Cells ダウンロード ページ.
  2. Visual Studio または任意の .NET IDE: ソリューションを実装するには、開発環境をセットアップする必要があります。Visual Studio は最適なオプションですが、.NET と互換性のある任意の IDE を使用できます。
  3. C# の基本知識: C# プログラミングの基本を理解すると、チュートリアルに沿って進み、サンプル コードをニーズに合わせて変更するのに役立ちます。
  4. Aspose.Cells APIドキュメント:Aspose.Cells for .NET ドキュメントライブラリで使用されるクラス構造とメソッドの概要を取得します。 前提条件がすべて整ったら、すぐに実装に取り掛かることができます。

パッケージのインポート

まず、必要なパッケージをインポートする必要があります。これらのライブラリは、C# プロジェクトで Excel ファイルとやり取りするために不可欠です。

using System.IO;
using Aspose.Cells;

必要なパッケージをインポートしたら、コーディングを開始できます。 それでは、プロセスを小さなステップに分解して、簡単に実行できるようにします。各ステップでは、実装の特定の部分に焦点を当て、すぐに理解して適用できるようにします。

ステップ1: 新しいワークブックとワークシートを作成する

保護設定を適用する前に、新しいブックを作成し、作業するワークシートを選択する必要があります。これが作業文書になります。

//ドキュメント ディレクトリへのパス。
string dataDir = "Your Document Directory";
//ディレクトリがまだ存在しない場合は作成します。
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
	System.IO.Directory.CreateDirectory(dataDir);
//新しいワークブックを作成します。
Workbook wb = new Workbook();
//ワークシート オブジェクトを作成し、最初のシートを取得します。
Worksheet sheet = wb.Worksheets[0];

この例では、1 つのワークシートを含む新しいワークブックを作成します (これは、Aspose.Cells を使用して新しいワークブックを作成する場合の既定の設定です)。次に、ワークブックの最初のワークシートを取得します。これが行保護の対象になります。

ステップ2: スタイルとスタイルフラグオブジェクトを定義する

次のステップは、スタイルとスタイル フラグ オブジェクトを定義することです。これらのオブジェクトを使用すると、セルのロック/ロック解除などのプロパティを変更できます。

//スタイル オブジェクトを定義します。
Style style;
// styleflag オブジェクトを定義します。
StyleFlag flag;

後の手順でこれらのオブジェクトを使用して、セルのプロパティをカスタマイズし、ワークシートに適用します。

ステップ3: ワークシート内のすべての列のロックを解除する

デフォルトでは、Excel ワークシート内のすべてのセルはロックされています。ただし、ワークシートを保護すると、ロック状態が強制されます。特定の行またはセルのみを保護するには、最初にすべての列のロックを解除します。特定の行のみを保護する場合は、この手順が不可欠です。

//ワークシート内のすべての列をループしてロックを解除します。
for (int i = 0; i <= 255; i++)
{
    style = sheet.Cells.Columns[(byte)i].Style;
    style.IsLocked = false;
    flag = new StyleFlag();
    flag.Locked = true;
    sheet.Cells.Columns[(byte)i].ApplyStyle(style, flag);
}

このコードでは、ワークシートの256列すべてをループし(Excelワークシートには最大256列あり、0から255までのインデックスが付けられています)、IsLocked財産にfalseこのアクションにより、すべての列のロックが解除されますが、後で特定の行をロックします。

ステップ4: 最初の行をロックする

列のロックを解除したら、次のステップは保護する特定の行をロックすることです。この例では、最初の行をロックします。これにより、他の行がロック解除されたままになっている間は、ユーザーがその行を変更できなくなります。

//最初の行のスタイルを取得します。
style = sheet.Cells.Rows[0].Style;
//ロックしてください。
style.IsLocked = true;
//フラグをインスタンス化します。
flag = new StyleFlag();
//ロック設定を設定します。
flag.Locked = true;
//最初の行にスタイルを適用します。
sheet.Cells.ApplyRowStyle(0, style, flag);

ここでは、最初の行のスタイルにアクセスし、そのIsLocked財産にtrueその後、ApplyRowStyle()メソッドを使用して、行全体にロック スタイルを適用します。この手順を繰り返して、保護する他の行をロックできます。

ステップ5: シートを保護する

必要な行のロックを解除およびロックしたので、ワークシートを保護します。保護により、保護パスワード (提供されている場合) を削除しない限り、ロックされた行またはセルを誰も変更できなくなります。

//シートを保護します。
sheet.Protect(ProtectionType.All);

このステップでは、シート全体に保護を適用します。ProtectionType.Allこのタイプの保護は、ロックされた行やセルを含むシートのすべての側面が保護されることを意味します。必要に応じて、異なる保護タイプを指定して、この保護をカスタマイズすることもできます。

ステップ6: ワークブックを保存する

最後に、必要なスタイルと保護を適用した後、ブックを保存する必要があります。ブックは、Excel 97-2003、Excel 2010 など、さまざまな形式で保存できます。

// Excel ファイルを保存します。
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

このコード行は、変更を適用したExcel 97-2003形式でブックを保存します。さまざまな形式から選択して、必要に応じてファイル形式を変更できます。SaveFormatオプション。

結論

これで完了です。Aspose.Cells for .NET を使用してワークシートの行を保護する方法を学習しました。上記の手順に従うことで、必要に応じて行または列のロックを解除またはロックし、保護を適用してデータの整合性を確保できます。

よくある質問

複数の行を一度に保護するにはどうすればよいですか?

複数の行をループして、各行に個別にロックスタイルを適用することができます。0ロックする行インデックスを使用します。

シート保護にパスワードを設定できますか?

はい!パスワードを渡すこともできますsheet.Protect()パスワード保護を強制する方法。

列全体ではなくセルのロックを解除できますか?

はい。列のロックを解除する代わりに、スタイル プロパティを変更して個々のセルのロックを解除できます。

保護された行を編集しようとするとどうなりますか?

行が保護されている場合、シートの保護を解除しない限り、Excel ではロックされたセルへの編集ができなくなります。

特定の範囲を連続して保護できますか?

はい!設定することで、行内の個々の範囲をロックできます。IsLocked範囲内の特定のセルのプロパティ。