본문 바로가기

Spring Boot

[Springboot] CSV 작성/다운로드 구현

반응형

Spring Boot 애플리케이션에서 CSV 파일 다운로드를 구현하는 방법의 예입니다.

import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.opencsv.CSVWriter;

@RestController
public class CsvDownloadController {

    @GetMapping("/download/csv")
    public void downloadCSV(HttpServletResponse response) {
        response.setContentType("text/csv");
        response.setHeader("Content-Disposition", "attachment; filename=\"data.csv\"");

        try {
            CSVWriter writer = new CSVWriter(response.getWriter());
            List<String[]> data = getData();
            writer.writeAll(data);
            writer.flush();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private List<String[]> getData() {
        // Add your data here and return it as a list of String arrays
        return data;
    }
}

다운로드 CSV 메서드는 HttpServletResponse 개체를 사용하여 응답에 대한 컨텐츠 유형 및 헤더를 설정합니다. CSVWriter는 응답 작성기에 데이터를 쓰는 데 사용됩니다. getData 메서드는 CSV 파일에 기록할 데이터를 검색하는 데 사용됩니다. 이 예에서는 데이터가 문자열 배열 목록으로 반환됩니다.

스프링 부트 응용 프로그램에서 OpenCSV를 사용하려면 다음 종속성을 pom.xml 파일에 추가하십시오.

<dependency>
  <groupId>com.opencsv</groupId>
  <artifactId>opencsv</artifactId>
  <version>5.2</version>
</dependency>
반응형