我有 mdx 查询,结果数据分为 2 列。如何使用 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(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());
}