[Java] 엑셀 다운로드 기능 구현
2022. 6. 27. 15:48

- POI dependency 추가

https://mvnrepository.com/artifact/org.apache.poi/poi

 

Maven Repository: org.apache.poi » poi

Apache POI - Java API To Access Microsoft Format Files VersionVulnerabilitiesRepositoryUsagesDate5.2.x5.2.2Central104Mar, 20225.2.1Central25Mar, 20225.2.0Central63Jan, 20225.1.x5.1.0Central78Nov, 20215.0.x5.0.0Central172Jan, 20214.1.x4.1.2Central336Feb, 20

mvnrepository.com

- 가장 최신버전인 5.0.0 버전을 활용했습니다.

 

<!-- xls 전용 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.0.0</version>
</dependency>

<!-- xlsx 전용 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.0.0</version>
</dependency>

 

- 컨트롤러 구성



import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; 

import simms.soft.board.model.BoardVO;
import simms.soft.board.service.BoardService;

@Controller
public class BoardApiController {
	
	@Autowired
	BoardService boardService;
	

	@GetMapping("/api/excel/board")
	public void downloadBoard(HttpServletResponse response) throws IOException {
		Workbook workbook = new HSSFWorkbook();
        Sheet sheet = workbook.createSheet("게시판글들");
        int rowNo = 0;
 
        Row headerRow = sheet.createRow(rowNo++);
        headerRow.createCell(0).setCellValue("글 번호");
        headerRow.createCell(1).setCellValue("제목");
        headerRow.createCell(2).setCellValue("내용");
        headerRow.createCell(3).setCellValue("작성자");
 
        List<BoardVO> list = boardService.excelBoardList();
        for (BoardVO board : list) {
            Row row = sheet.createRow(rowNo++);
            row.createCell(0).setCellValue(board.getBoardNo());
            row.createCell(1).setCellValue(board.getTitle());
            row.createCell(2).setCellValue(board.getContent());
            row.createCell(3).setCellValue(board.getUserId());
        }
 
        response.setContentType("ms-vnd/excel");
        response.setHeader("Content-Disposition", "attachment;filename=boardlist.xls");
 
        workbook.write(response.getOutputStream());
        workbook.close();
	}
	 
}

 

- 간단하게 엑셀 다운로드 완료

 

 


출처

 

https://shanepark.tistory.com/260

 

Java) POI 활용해 DB데이터 엑셀 파일로 저장하기

사용자에게 요구 데이터를 보여 주는 방법은 여러가지가 있습니다. 보통은 웹 페이지를 통해 화면을 보여주는데요, 사용자가 해당 내용을 확인하기 위해서는 항상 해당 웹 페이지에 방문 해야

shanepark.tistory.com

 

https://techblog.woowahan.com/2698/

 

아 엑셀다운로드 개발,,, 쉽고 빠르게 하고 싶다 (feat. 엑셀 다운로드 모듈 개발기) | 우아한형제

{{item.name}} 1. 들어가며 안녕하세요! 정산시스템팀 병아리 개발자 최태현입니다. 최근에 엑셀 다운로드 개발을 편하게 할 수 있는 모듈을 만들게 되었습니다. 제가 엑셀 다운로드 모듈을 만들게

techblog.woowahan.com