通过 Worksheet.XmlMapQuery 方法查询映射到 XML 地图路径的单元格区域

可能的使用场景

您可以使用Aspose.Cells的Worksheet.xmlMapQuery()方法查询映射到XML映射路径的单元格区域。如果路径存在,它将返回与XML映射内部该路径相关的单元格区域的列表。Worksheet.xmlMapQuery()方法的第一个参数指定XML元素路径,第二个参数指定您要查询的XML映射。

通过 Worksheet.XmlMapQuery 方法查询映射到 XML 地图路径的单元格区域

下面的屏幕截图显示了Microsoft Excel显示内含在代码中使用的sample Excel文件中的XML映射。代码两次查询XML映射并以控制台上的Worksheet.xmlMapQuery()方法返回的单元格区域列表显示如下。

todo:image_alt_text

示例代码

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Load sample Excel file having Xml Map
Workbook wb = new Workbook("sampleXmlMapQuery.xlsx");
//Access first XML Map
XmlMap xmap = wb.getWorksheets().getXmlMaps().get(0);
//Access first worksheet
Worksheet ws = wb.getWorksheets().get(0);
//Query Xml Map from Path - /MiscData
System.out.println("Query Xml Map from Path - /MiscData");
ArrayList ret = ws.xmlMapQuery("/MiscData", xmap);
//Print returned ArrayList values
for (int i = 0; i < ret.size(); i++)
{
System.out.println(ret.get(i));
}
System.out.println("");
//Query Xml Map from Path - /MiscData/row/Color
System.out.println("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.size(); i++)
{
System.out.println(ret.get(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.getXmlMap().getDataBinding().getUrl() 实现相同的功能。以下示例演示了这一功能。模板文件和其他源文件可以从以下链接下载:

  1. XMLData.xlsx
  2. CountryList.xml
  3. FoodList.xml
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Load XLSX file containing data from XML file
Workbook workbook = new Workbook("XML Data.xlsx");
// Access the first worksheet
Worksheet ws = workbook.getWorksheets().get(0);
// Access ListObject from the first sheet
ListObject listObject = ws.getListObjects().get(0);
// Get the url of the list object's xml map data binding
String url = listObject.getXmlMap().getDataBinding().getUrl();
// Display XML file name
System.out.println(url);