ワークシート.XmlMapQueryメソッドを使用して、XMLマップパスにマップされたセルエリアをクエリします。

可能な使用シナリオ

Aspose.Cellsを使用してXMLマップパスにマッピングされたセル領域をクエリすることができます。パスが存在する場合、XMLマップ内のそのパスに関連するセル領域のリストを返します。 Worksheet.XmlMapQuery()メソッドの最初のパラメーターはXML要素パスを指定し、2番目のパラメーターはクエリしたいXMLマップを指定します。

ワークシート.XmlMapQueryメソッドを使用して、XMLマップパスにマップされたセルエリアをクエリします。

次のスクリーンショットは、コードで使用されるsample Excel file内のXMLマップを表示するMicrosoft Excelを示しています。コードはXMLマップを2回クエリし、Worksheet.XmlMapQuery()メソッドによって返されたセル領域のリストを下記のようにコンソールに出力します。

todo:image_alt_text

サンプルコード

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Load sample Excel file having Xml Map
Workbook wb = new Workbook("sampleXmlMapQuery.xlsx");
//Access first XML Map
XmlMap xmap = wb.Worksheets.XmlMaps[0];
//Access first worksheet
Worksheet ws = wb.Worksheets[0];
//Query Xml Map from Path - /MiscData
Console.WriteLine("Query Xml Map from Path - /MiscData");
ArrayList ret = ws.XmlMapQuery("/MiscData", xmap);
//Print returned ArrayList values
for (int i = 0; i < ret.Count; i++)
{
Console.WriteLine(ret[i]);
}
Console.WriteLine("");
//Query Xml Map from Path - /MiscData/row/Color
Console.WriteLine("Query Xml Map from Path - /MiscData/row/Color");
ret = ws.XmlMapQuery("/MiscData/row/Color", xmap);
//Print returned ArrayList values
for (int i = 0; i < ret.Count; i++)
{
Console.WriteLine(ret[i]);
}

コンソール出力

Query Xml Map from Path - /MiscData

Aspose.Cells.CellArea(A1:A8)[0,0,7,0]

Aspose.Cells.CellArea(B1:B8)[0,1,7,1]

Aspose.Cells.CellArea(C1:C8)[0,2,7,2]

Aspose.Cells.CellArea(D1:D8)[0,3,7,3]

Aspose.Cells.CellArea(E1:E8)[0,4,7,4]

Query Xml Map from Path - /MiscData/row/Color

Aspose.Cells.CellArea(D1:D8)[0,3,7,3]

リストオブジェクト/テーブルからXMLパスを取得する

XMLデータはワークシートにインポートすることができます。時にはワークシートのListObjectsからXMLパスが必要になります。この機能は、ExcelでSheet1.ListObjects(1).XmlMap.DataBindingのような式を使用することで利用できます。Aspose.Cellsでも ListObject.XmlMap.DataBinding.Url を呼び出すことで同じ機能が利用できます。以下の例がこの機能を示しています。テンプレートファイルおよびその他のソースファイルは、以下のリンクからダウンロードできます。

  1. XML Data.xlsx
  2. Country List.xml
  3. Food List.xml
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Load XLSX file containing data from XML file
Workbook workbook = new Workbook("XML Data.xlsx");
// Access the first worksheet
Worksheet ws = workbook.Worksheets[0];
// Access ListObject from the first sheet
Aspose.Cells.Tables.ListObject listObject = ws.ListObjects[0];
// Get the url of the list object's xml map data binding
string url = listObject.XmlMap.DataBinding.Url;
// Display XML file name
Console.WriteLine(url);