<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
url 맵핑
@RequestMapping(value = "/download/csv", method = RequestMethod.GET)
public ResponseEntity<byte[]> downloadCSV(){
...
}
리턴을 "ResponseEntity<byte[]>"으로 해서 url을 연결시켜 줍니다.
DB에서 csv 파일로 받을 데이터 가져오기
그리고 csv 파일로 만들 데이터를 가져옵니다.
가져온 데이터로 csv파일 만들기
byte[] csvFile = null;
String[] cols = {"컬럼1", "컬럼2"}
CSVPrinter csvPrinter = null;
StringWriter sw = new StringWriter();
try{
csvPrinter = new CSVPrinter(sw, CSVFormat.DEFAULT.withHeader(cols));
}
for (Word word : words) {
List<String> data = Arrays.asList(
String.valueOf(word.getId()),
word.getNameKor()
);
csvPrinter.printRecord(data);
}
sw.flush();
csvFile = sw.toString().getBytes("UTF-8");
csv 파일 return 보내기
HttpHeaders header = new HttpHeaders();
header.setContentType(MediaType.valueOf("plain/text"));
header.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=저장할 파일이름.csv");
header.setContentLength(csvFile.length);
return new ResponseEntity<byte[]>(csvFile, header, HttpStatus.OK);
참고
1. 파일 다운로드(excel,csv)