ジャバ:データ (データベース、クエリ、またはテーブルの内容) を Excel にエクスポートするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/8820731

質問

テーブルの内容またはクエリのデータを Excel ファイルにエクスポートする方法を知りたいです。また、エクスポートするファイル拡張子は、xls と csv のどちらが良いですか?

前もって感謝します。


編集:私が望んでいるのは、ユーザーがボタンを押すことで、クエリの結果を含む JTable の内容を Excel 互換ファイルにエクスポートできるようにすることです。

何が最善の方法なのか分かりません。いろいろな方法を見つけましたが、どれに従うべきかわかりません。JasperReport を生成して、同じデータを Excel にエクスポートすることは可能ですか?


Edit2:わかりましたので、ほとんどの人が提案しているように、.csvにエクスポートすることにしました。最後の質問は、opecsv とどちらを使用するのが良いかということです。 javacsv?どちらも本当に使いやすそうです。

ありがとう!

役に立ちましたか?

解決

CSV へのエクスポートは簡単で、データによっては手動で行うこともできます (新しい行はそれぞれ新しい行で、セルの値はカンマで区切られます)。これにはオープン ソース ライブラリが用意されています (http:// opencsv.sourceforge.net/)、結果セットを出力にコピーするコードは簡単である必要があります。

他のヒント

Excelが絶対に必要な場合は、Apache POIライブラリを使用してください。

テキストファイル(CSV)を作成し、データベースの結果を記述する必要があります。

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

すでに与えられた答えに加えて、私はCSVを好むと言いたいです。

CSVはアプリケーションに依存しており、他の言語/プログラム(Python、R、Java、Excelなど)で後でデータを操作できます。

私はjxlsで大成功を収めました: http://jxls.sourceforge.net/

これにより、すべてのフォーマットなどを備えたネイティブExcelテンプレートでJSPのようなタグを使用できます。マップ構造を介して、Java API呼び出しからそのExcelテンプレートに置き換えるためにデータを渡すことができます(リクエストスコープvarsに類似)。

これは、フォーマットされたExcel出力が必要な場合、JasperReportsの優れた軽量の代替品です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top