简体   繁体   中英

Java: How to export data (db, query or table contents) to Excel?

I would like to know how to export the contents of a table or the data from a query to an Excel file. Also wich is the file extension that is better to export to, xls or csv?

Thanks in advance.


Edit: What i want is the user to to be able to export the contents of a JTable -containing the results from a query- to an Excel compatible file, by pressing a button.

I don't know what is the best way to do it? I found various ways but i'm not sure which one to follow. Is it possible to generate a JasperReport then export tha same data to excel?


Edit2:Ok so i decided to export to .csv like most of you suggest. My last question is which one is better to use, opecsv or javacsv ? Both seem really easy to use.

Thanks!

导出到csv更容易-可以根据数据手动进行手动操作(每个新行都是新行,并且单元格值用逗号分隔)-对此可以使用开源库(http:// opencsv.sourceforge.net/),并将结果集复制到输出中的代码应该很简单

如果您绝对需要Excel,请使用Apache POI库。

You have to create text file (csv) and write the result of database.

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));
}

In addition to the answers already given, I would like to say that I would prefer CSV.

CSV is application-agnostic and you could manipulate the data later on with any other language/program (Python, R, Java, Excel, etc).

I had good success with jXLS: http://jxls.sourceforge.net/

this lets you use JSP-like tags in a native Excel template with all the formatting etc. You pass data to substitute into that Excel template from Java API calls, via a Map structure (analogous to request scope vars.)

This is a good lighter-weight alternative to JasperReports if you just want formatted Excel output.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM