Java: Comment exporter des données (db, requête ou le contenu de la table) vers Excel?
-
27-10-2019 - |
Question
Je voudrais savoir comment exporter le contenu d'une table ou les données d'une requête vers un fichier Excel. De plus Wich est l'extension de fichier qui est mieux exporter vers, xls ou csv?
Merci à l'avance.
Modifier. Ce que je veux est l'utilisateur de pouvoir exporter le contenu d'un JTable contenant les résultats d'un query- à un fichier compatible avec Excel, en appuyant sur un bouton
Je ne sais pas quelle est la meilleure façon de le faire? J'ai trouvé diverses manières, mais je ne suis pas sûr que l'on à suivre. Est-il possible de générer un JasperReport puis exporter tha mêmes données vers Excel?
Edit2: Ok donc je décidé d'exporter vers .csv comme la plupart d'entre vous suggérer. Ma dernière question est que l'on est préférable d'utiliser, ou opecsv javacsv ? Tous deux semblent vraiment facile à utiliser.
Merci!
La solution
Exportation au format CSV est plus facile - et pourrait se faire manuellement dans un pincement en fonction des données (chaque nouvelle ligne est une nouvelle ligne, et les valeurs des cellules sont séparées par une virgule) - Il existe des bibliothèques open source disponibles pour cette (http : //opencsv.sourceforge.net/), et le code pour la copie d'un ResultSet votre sortie devrait être trivial
Autres conseils
Si vous avez absolument besoin d'Excel, utilisez la bibliothèque Apache POI.
Vous devez créer un fichier texte (csv) et écrire le résultat de la base de données.
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.csv")));
while(rs.next())
{
out.println(String.format("%s,%s,%s",rs.getString(1),rs.getString(2),rs.getString(3));
}
En plus des réponses déjà données, je voudrais dire que je préférerais CSV.
CSV est agnostique application et vous pouvez manipuler les données plus tard avec une autre langue / programme (Python, R, Java, Excel, etc.).
J'ai eu un bon succès avec jXLS: http://jxls.sourceforge.net/
vous permet d'utiliser JSP comme des balises dans un modèle Excel natif avec tout le formatage etc. Vous passez des données à remplacer dans ce modèle Excel à partir des appels d'API Java, via une structure Carte (analogue à la portée demande vars.)
Ceci est une bonne alternative plus léger à JasperReports si vous voulez juste une mise en forme Excel.