2010-08-13 3 views
0

Я пытаюсь работать с JExcel API и имел следующий вопрос.jexcel - вопрос транспонирования

Я запросил таблицы базы данных для 3 столбцов: id, time, value. Я добавляю их в разные массивы как объекты. Я хочу, чтобы вывести их в листе первенствовать следующим образом:

 
id  9:10 9:11 9:12 

1  value value value 

2  value value value 

3  value value value 

Где 1, 2 и 3 являются идентификаторы. Значение value является значением этого id того времени. Я не понимаю, как у меня может быть весь вход, отсортированный как указано выше, поскольку мне нужно сделать это для дальнейшего анализа.

Любые предложения?

+0

Нужно ли обязательно заполнять файл Excel в полном объеме? Не хватит ли только CSV? CSV легко сгенерировать с использованием Java и отлично поддерживается Excel. Вы даже можете использовать встроенные CSV-генераторы DB. – BalusC

+0

CSV классный. Но все-таки не могли бы вы рассказать мне, как это сделать? Я до сих пор не понимаю :( В конце концов мне просто нужно сгенерировать отчет excel после некоторой крупной сортировки данных. также нужно хранить данные где-нибудь, чтобы я мог сортировать его. Я использую arraylists для хранения данные, которые кажутся существенно неэффективными, поскольку данные, которые я обрабатываю, составляют более 100000 записей! Любой лучший способ сделать это? – JJunior

+0

Использовать SQL, а не Java. БД значительно более эффективна в задании сортировки. Просто напишите SQL так, чтобы DB возвращает результаты точно так, как вы хотите, если необходимо, в стиле CSV-файла. – BalusC

ответ

0

Эту проблему можно решить достаточно легко.

Во-первых, спросите себя, что бы я сделал, если бы я должен был транспонировать их вручную?

Я предполагаю, что здесь данные в БД выглядит Лик это:

 
id   1   2   3 
09:10  valueA1  valueA2  valueA3 
09:11  valueB1  valueB2  valueB3 
09:12  valueC2  valueC2  valueC3 

Что вам нужно сделать, это поменять местами строки в столбцы. id < -> id, 1 < -> 09:00, 2 < -> 09:11 .... valueA1 < -> valueA1, valueB1 < -> valueA2.

Итак, если мы перебираем это с помощью вложенных циклов, где мы читаем в ячейке C, в C_ij мы выписываем на C_ji.

Надеюсь, этого достаточно, чтобы показать вам, что делать.