2010-08-13 14 views
0

J'essaie de travailler avec JExcel API et j'avais la question suivante.jexcel - transpose question

J'ai interrogé mes tables de base de données pour 3 colonnes: id, time, value. Je les ajoute dans des tableaux différents en tant qu'objets. Je veux les sortir dans une feuille Excel comme suit:

 
id  9:10 9:11 9:12 

1  value value value 

2  value value value 

3  value value value 

1, 2 et 3 sont les ID. Le value est la valeur de ce id à ce moment-là. Je ne comprends pas comment je pourrais avoir toutes les entrées triées comme ci-dessus car je dois le faire pour une analyse plus approfondie.

Des suggestions?

+0

Faut-il nécessairement être un fichier Excel digne de confiance? Ne suffirait-il pas à CSV? CSV est facile à générer en Java et parfaitement supporté par Excel. Vous pourriez même bénéficier des générateurs CSV intégrés de la base de données. – BalusC

+0

CSV est cool. Mais pourriez-vous encore me dire comment s'y prendre? Je n'ai toujours aucune idée :( En fin de compte, j'ai juste besoin de générer un rapport Excel après un tri important des données besoin également de stocker les données quelque part afin que je puisse le trier.J'utilise des arraylists pour stocker le données qui semblent très inefficaces car les données que je traite sont plus de 100000 enregistrements! Une meilleure façon de le faire? – JJunior

+0

Utilisez SQL, pas Java.La DB est beaucoup plus efficace dans le travail de tri. DB renvoie les résultats exactement comme vous le souhaitez, si besoin est dans la version d'un fichier CSV. – BalusC

Répondre

0

Ce type de problème peut être résolu raisonnablement facilement. D'abord, demandez-vous, que ferais-je si je devais les transposer à la main?

Je suppose ici vos données dans le DB semble liek ceci:

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

Ce que vous devez faire, est échangez vos lignes en colonnes. id < -> id, 1 < -> 09:00, 2 < -> 09:11 .... valeurA1 < -> valeurA1, valeurB1 < -> valeurA2. Donc, si nous allions là-dessus avec des boucles imbriquées, où nous lisions dans une cellule C, à C_ij nous écrivons dans C_ji.

J'espère que cela suffit pour vous montrer quoi faire.