- 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
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 우분투 스프링부트 패키지 가이드 (0) | 2023.04.26 |
---|---|
[Java] PageModule만들기 (with. Pageable) (0) | 2023.03.23 |
[Java] List 반복문으로 add 할 때 동일한 값 출력될 때 (0) | 2022.02.08 |
[Java] javadocs SnippetException: Cannot document response fields as the response body is empty 오류 (0) | 2022.02.07 |
[Java] java api docs 활용 (0) | 2022.01.17 |