Aspose.Cells を使用して XML データ マップ パスにマップされたセル領域をクエリする

導入

.NET を使用して Excel で XML データを効率的に操作したいと思ったことはありませんか? スプレッドシート操作用の強力なライブラリである Aspose.Cells for .NET を使用すると、Excel ファイル内の XML マップとのやり取りがシームレスになります。このチュートリアルでは、Excel ファイル内の XML パスにマップされた特定の領域をクエリする方法を説明します。これは、動的なレポートの生成やデータ抽出の自動化に最適です。ステップ バイ ステップのプロセスを見てみましょう。

前提条件

コーディングを始める前に、以下のものを準備してください。

  1. Aspose.Cells for .NET: ダウンロードここまたは NuGet 経由でインストールします。
  2. XML がマップされた Excel ファイル: XML マップがすでに配置されている Excel ファイル (.xlsx) が必要になります。
  3. 開発環境: このガイドは Visual Studio 向けにカスタマイズされていますが、他の C# エディターでも動作します。
  4. Asposeライセンス: 一時ライセンスを取得できますここ必要な場合。

開発環境の設定

まず、コード ファイルに必要な名前空間をインポートします。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Collections;

これらのパッケージをインポートすることで、ワークブックとそのワークシートにアクセスして操作するための環境が設定されます。

ステップ1: Excelファイルを読み込む

まず、XML マッピングを含む Excel ファイルを読み込む必要があります。

//ソースファイルのディレクトリを定義する
string sourceDir = "Your Document Directory"; //それに応じてパスを更新します

// Excelファイルを読み込む
Workbook workbook = new Workbook(sourceDir + "sampleXmlMapQuery.xlsx");

ここ、Workbookファイルパスを使用して読み込む Excel ファイル全体を表します。

ステップ2: XMLマップにアクセスする

ファイルが読み込まれたら、ワークブック内の XML マップにアクセスします。

//ワークブックの最初のXMLマップにアクセスする
XmlMap xmlMap = workbook.Worksheets.XmlMaps[0];

これにより、ワークブックから最初の XML マップが取得されます。ワークブックに複数のマップが含まれている場合は、必要に応じてインデックスを調整します。

ステップ3: ワークシートを選択する

次に、マップされた XML データを含むワークシートにアクセスします。

//ワークブックの最初のワークシートにアクセスする
Worksheet worksheet = workbook.Worksheets[0];

この場合、最初のワークシートを選択していますが、必要に応じて別のワークシートを簡単にターゲットにすることができます。

ステップ4: XMLマップをクエリする

さて、XMLパスを使ってXMLマップをクエリしてみましょう。例えば、/MiscDataパスの場合は次のようにします。

//パスを使用してXMLマップをクエリする
Console.WriteLine("Querying XML Map from Path - /MiscData");
ArrayList results = worksheet.XmlMapQuery("/MiscData", xmlMap);

このメソッドは XML パスを受け取り、関連データを ArrayList に取得します。

ステップ5: クエリ結果を表示する

クエリされたデータが取得できたので、結果をコンソールに出力してみましょう。

//クエリの結果を出力する
foreach (var result in results)
{
    Console.WriteLine(result);
}

このループを使用すると、XML パスから取得したすべての項目を表示できます。

ステップ 6: ネストされた XML パスをクエリする

クエリを絞り込んで、より具体的なデータを対象にすることができます。例えば、以下の色情報に興味がある場合、/MiscData/row/Colorクエリを次のように調整します。

//ネストされたXMLパスのクエリ
Console.WriteLine("Querying XML Map from Path - /MiscData/row/Color");
results = worksheet.XmlMapQuery("/MiscData/row/Color", xmlMap);

ステップ7: ネストされたクエリ結果を表示する

最後に、この特定のパスからのデータを表示してみましょう。

//ネストされたパスクエリの結果を出力する
foreach (var result in results)
{
    Console.WriteLine(result);
}

このループはネストされたクエリから各項目を出力し、対象となるデータを表示します。

結論

このチュートリアルでは、Aspose.Cells for .NET を使用して Excel ファイルにマップされた XML データをクエリする方法について説明しました。この機能は、特定の XML データを動的に抽出したい開発者にとって非常に役立ちます。この基礎知識があれば、より複雑な XML クエリを実装したり、Excel プロジェクトで複数の XML マッピングを操作したりできるようになります。

よくある質問

1 つの Excel ブックに複数の XML ファイルをマップできますか?

はい、Aspose.Cells は単一のワークブック内で複数の XML マップの管理をサポートしています。

マップ内に XML パスが存在しない場合はどうなりますか?

無効なパスをクエリすると、XmlMapQueryメソッドは空のArrayListを返します。

Aspose.Cells for .NET を使用するにはライセンスが必要ですか?

はい、全機能を使用するにはライセンスが必要です。無料トライアルそして一時ライセンスご利用いただけます。

クエリされたデータを新しい Excel ファイルに保存できますか?

もちろんです! データを抽出して別の Excel ファイルに保存したり、Aspose.Cells でサポートされているさまざまな形式にエクスポートしたりできます。

XML マップのクエリは Excel (.xlsx) 以外の形式でもサポートされていますか?

XML マッピングは主に .xlsx ファイルでサポートされており、他の形式の機能は制限される場合があります。