CSV化
インストール
ダウンロードするファイルを作るためにまずはObjectをCSVに変換します。ライブラリはjackson-dataformat-csvを使うのが簡単で楽です。gradleでのインストールは下記になります。
dependencies { compile('com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.9.4') }
使い方
CsvMapperからインスタンスを作成し、csvにしたいクラスを使ってschemaを定義します。csvにヘッダーをつけたい場合はwithHeader()をつけます。あとはwriteValueAsStringにクラスのインスタンス配列を渡すだけです。
Kotlinで書いているので適宜読み替えてください。
val mapper = CsvMapper() val schema = mapper.schemaFor(SampleDTO::class.java).withHeader() val csv = mapper.writer(schema).writeValueAsString(sampleDtoList)
ダウンロード
ダウンロード処理も簡単です。レスポンスにはResponseEntity<ByteArray>を使っています。上記で作成したcsvをByteArrayに変換することでファイルとしてクライアントに返却できます。
HttpHeadersのsetContentDispositionFormDataを使うことでファイル名を設定できます。文字コードはByteArray変換時に(Charset.forName(“SJIS”)を指定するとエクセルでも文字化けしないファイルを返すことができます。
@GetMapping("/csv") fun downloadCsv(@ModelAttribute request: CsvRequest): ResponseEntity<ByteArray> { val header: HttpHeaders = HttpHeaders() // ファイル名を指定 header.setContentDispositionFormData("filename", "sample.csv"); // 文字コードをSJISに変更 return ResponseEntity<ByteArray>(csv.toByteArray(Charset.forName("SJIS")), header, HttpStatus.OK); }
おすすめ書籍
Springの概要からインストール方法、各コア機能(Security, Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。これからSpring Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。対象は初心者だけでなく上級者まで幅広く学べるので是非読んでみてください!
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す