반응형
이렇게하면됨
@PostMapping("/짜증나네진짜")
public ResponseEntity<?> download(@RequestBody List<Long> list, HttpServletResponse response) {
try {
List<?> list = service.list();
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("sheet1");
// 파일로 저장하지 않고 직접 ByteArray로 응답
ByteArrayOutputStream out = new ByteArrayOutputStream();
workbook.write(out);
workbook.close();
// 한글 파일명 설정 (ISO-8859-1로 변환)
String fileName = "짜증나네진짜.xlsx";
String encodedFileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
// HTTP 응답 헤더 설정
response.setContentType("ms-vnd/excel");
response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\"");
response.setHeader("Content-Transfer-Encoding", "binary");
// 파일 전송
return ResponseEntity.ok()
.body(out.toByteArray());
} catch (Exception e) {
log.error("Failed to generate Excel file", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("fail");
}
}
반응형
'springBoot' 카테고리의 다른 글
SpringBoot Docker 로 배포 (0) | 2023.04.15 |
---|---|
[SpringBoot] @requestBody list 혹은 array 받기 (0) | 2022.10.06 |
springBoot email 전송 (구글 앱비밀번호 발급) (0) | 2022.09.14 |
[Spring Boot] Spring Security + JWT token 로그인 (0) | 2022.09.06 |
[ SpringBoot ] api test , jpa test 코드 (0) | 2022.08.19 |
댓글