как читать данные из 2-го столбца в запросе mdx с помощью olap4j

У меня есть запрос mdx, который приводит данные в 2 столбца. Как мне прочитать данные во втором столбце, используя CellSet в java. Я использую CellSet.getcell(index) для чтения данных из 1-го столбца в запросе mdx.

| Столбец1 | Колонка2 |

| 111 | 222 |


person user3566201    schedule 06.04.2016    source источник


Ответы (1)


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());
}
person Julian Hyde    schedule 06.04.2016