Spring BootでJava ObjectをCSVにしてダウンロードする方法




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

CSV化

インストール

ダウンロードするファイルを作るためにまずはObjectをCSVに変換します。ライブラリはjackson-dataformat-csvを使うのが簡単で楽です。gradleでのインストールは下記になります。

使い方

CsvMapperからインスタンスを作成し、csvにしたいクラスを使ってschemaを定義します。csvにヘッダーをつけたい場合はwithHeader()をつけます。あとはwriteValueAsStringにクラスのインスタンス配列を渡すだけです。

Kotlinで書いているので適宜読み替えてください。

ダウンロード

ダウンロード処理も簡単です。レスポンスにはResponseEntity<ByteArray>を使っています。上記で作成したcsvをByteArrayに変換することでファイルとしてクライアントに返却できます。

HttpHeadersのsetContentDispositionFormDataを使うことでファイル名を設定できます。文字コードはByteArray変換時に(Charset.forName(“SJIS”)を指定するとエクセルでも文字化けしないファイルを返すことができます。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 現在はTwitterなどSNSのテキスト解析を行うソーシャルメディア分析のサーバーサイドを開発中。言語はNode.js、Kotlinを使用。






コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です