くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

SpringBoot/SpringMVCでファイルのダウンロード(CSV, Excel, PDF, ローカルファイル)

SpringBoot/SpringMVCでファイルをダウンロードについて調べたので、φ(..)メモメモ

CSVでダウンロード

@RequestMapping(value = "/download", method = RequestMethod.GET)
public ResponseEntity<byte[]> download() throws IOException {
  HttpHeaders h = new HttpHeaders();
  h.add("Content-Type", "text/csv; charset=MS932");
  h.setContentDispositionFormData("filename", "hoge.csv");
  return new ResponseEntity<>("あ,い,う,え,お".getBytes("MS932"), h, HttpStatus.OK);
}

refs: Spring Bootでファイルダウンロードをする - かずきのBlog@hatena

Excelでダウンロード

@RequestMapping(value = "exportExcel", method = RequestMethod.GET)
public ModelAndView exportExcel(HttpServletRequest rq) {
  ModelAndView mav = new ModelAndView(new ExcelBuilder());
  mav.addObject("fileName", "products-" + DateTime.now().toString("yyyyMMdd-hhmmss") + ".xls");
  mav.addObject("products", createProducts(TEST_DATA_COUNT));
  return mav;
}

refs: Eclipse RCP, RAP Blog: (8)Spring Boot で Web アプリケーションを開発:エクスポート処理(ダウンロード)

PDFでダウンロード

@RequestMapping(value = "exportPdf", method = RequestMethod.GET)
public ModelAndView exportPdf(HttpServletRequest rq) {
  ModelAndView mav = new ModelAndView(new PdfBuilder());
  mav.addObject("products", createProducts(TEST_DATA_COUNT));
  return mav;
}

refs: Eclipse RCP, RAP Blog: (8)Spring Boot で Web アプリケーションを開発:エクスポート処理(ダウンロード)

ローカルファイルをダウンロード

@RequestMapping(value = "/file2", produces = MediaType.APPLICATION_XML_VALUE)
public Resource file2() {
  return new FileSystemResource("pom.xml");
}

refs: Spring MVCのコントローラでの戻り値いろいろ - Qiita

以上!!

参考になる書籍

Spring Boot 2 プログラミング入門

Spring Boot 2 プログラミング入門

参考にしたサイト様