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

时间:2016-04-06 00:02:51

标签: mdx olap4j

我有mdx查询,结果数据分为2列。 如何使用java中的CellSet读取第二列中的数据。 我使用CellSet.getcell(index)从mdx查询中的第一列读取数据。

| Column1 | Column2 |

| 111 | 222 |

1 个答案:

答案 0 :(得分:0)

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(List<Integer>) 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());
}