如何使用olap4j从mdx查询的第二列读取数据

如何使用olap4j从mdx查询的第二列读取数据,mdx,olap4j,Mdx,Olap4j,我有一个mdx查询,它将数据分为两列。 如何在java中使用CellSet读取第二列中的数据。 我使用CellSet.getcell(index)从mdx查询的第一列读取数据 |第1列|第2列| |111 | 222 |CellSet.getCell(index)实际上允许您访问任何单元格,而不仅仅是第一列中的单元格。如果有2列3行,则单元格序号如下所示: Col0 Col1 Row0 0 1 Row1 2 3 Row2 4

我有一个mdx查询,它将数据分为两列。 如何在java中使用CellSet读取第二列中的数据。 我使用CellSet.getcell(index)从mdx查询的第一列读取数据

|第1列|第2列| |111 | 222 |

CellSet.getCell(index)
实际上允许您访问任何单元格,而不仅仅是第一列中的单元格。如果有2列3行,则单元格序号如下所示:

       Col0  Col1
 Row0     0     1
 Row1     2     3
 Row2     4     5
如您所见,要读取第一列(“Col0”),您需要读取索引0、2、4,要读取第二列(“Col1”),您需要读取索引1、3、5

如果这种光栅扫描安排使您头痛,请尝试改用
cellSet.getCell(列表)
API。它允许您为每个轴指定独立坐标。例如,要读取第2行第1列,请写入
cellSet.getCell(Arrays.asList(2,1))
。请记住,所有索引都是基于0的,因此左上角是(0,0)

要打印第二列(列#1,基于0)的值,请编写以下内容:

CellSet cellSet;
CellSetAxis rowsAxis = cellSet.getAxes().get(1);
for (int i = 0; i < rowsAxis.getPositionCount(); i++) {
  Cell cell = cellSet.getCell(Arrays.asList(1, i));
  System.out.println(cell.getFormattedValue());
}
CellSet-CellSet;
CellSetAxis rowsAxis=cellSet.getAxes().get(1);
对于(int i=0;i