본문 바로가기
개발언어/JAVA

[JAVA] 자바 POI 를 이용하여 엑셀 파일 만들기/ POI 라이브러리 사용법

by 코딩 시그널 2020. 10. 2.
반응형

poi 라이브러리를 이용하여 간단한 엑셀 다운로드 프로그램을 만들어 보겠습니다.

poi 라이브러리에 대한 설명은 아래의 링크를 참조해 주세요.

 

[JAVA] 자바 POI 를 이용하여 엑셀 다운로드/ 엑셀 읽기 (1)

아파치 Poi Api를 사용하여 마이크로소프트사의 엑셀 파일(xls, xlsx)을 읽고 쓰는 예제를 구현하겠습니다. 아파치 POI(Apache POI)란? 아파치 소프트웨어 재단에서 만든 라이브러리로 마이크로소프트 �

junghn.tistory.com

pom.xml 설정

<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi</artifactId>
	<version>3.7</version>
</dependency>    
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>3.7</version>
</dependency>

소스

소스의 대한 설명은 주석으로 대신 하겠습니다.

import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


public class ExcelDownTest {
	public static void main(String[] args) throws Exception{
	
		// .xls 확장자 지원
		
		// HSSFWorkbook hssWb = null;
		// HSSFSheet hssSheet = null;
		// Row hssRow = null;
		// Cell hssCell = null;
		
		//.xlsx 확장자 지원
		
		XSSFWorkbook xssfWb = null; 
		XSSFSheet xssfSheet = null; 
		XSSFRow xssfRow = null; 
		XSSFCell xssfCell = null;
			
		try {
			int rowNo = 0; // 행의 갯수 
	
			xssfWb = new XSSFWorkbook(); //XSSFWorkbook 객체 생성
			xssfSheet = xssfWb.createSheet("워크 시트1"); // 워크시트 이름 설정
			
			// 폰트 스타일
			XSSFFont font = xssfWb.createFont();
			font.setFontName(HSSFFont.FONT_ARIAL); // 폰트 스타일
			font.setFontHeightInPoints((short)20); // 폰트 크기
			font.setBold(true); // Bold 설정
			font.setColor(new XSSFColor(Color.decode("#457ba2"))); // 폰트 색 지정
			
			//테이블 셀 스타일
			CellStyle cellStyle = xssfWb.createCellStyle();
			xssfSheet.setColumnWidth(0, (xssfSheet.getColumnWidth(0))+(short)2048); // 0번째 컬럼 넓이 조절
			
			cellStyle.setFont(font); // cellStyle에 font를 적용
			cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 정렬

			//셀병합
			xssfSheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 4)); //첫행, 마지막행, 첫열, 마지막열 병합
			
			// 타이틀 생성
			xssfRow = xssfSheet.createRow(rowNo++); // 행 객체 추가
			xssfCell = xssfRow.createCell((short) 0); // 추가한 행에 셀 객체 추가
			xssfCell.setCellStyle(cellStyle); // 셀에 스타일 지정
			xssfCell.setCellValue("타이틀 입니다"); // 데이터 입력
			
			xssfSheet.createRow(rowNo++);
			xssfRow = xssfSheet.createRow(rowNo++);  // 빈행 추가
			
			//테이블 스타일 설정
			CellStyle tableCellStyle = xssfWb.createCellStyle();
			tableCellStyle.setBorderTop((short) 5);    // 테두리 위쪽
			tableCellStyle.setBorderBottom((short) 5); // 테두리 아래쪽
			tableCellStyle.setBorderLeft((short) 5);   // 테두리 왼쪽
			tableCellStyle.setBorderRight((short) 5);  // 테두리 오른쪽
			
			xssfRow = xssfSheet.createRow(rowNo++);
			xssfCell = xssfRow.createCell((short) 0);
			xssfCell.setCellStyle(tableCellStyle);
			xssfCell.setCellValue("셀1");
			xssfCell = xssfRow.createCell((short) 1);
			xssfCell.setCellStyle(tableCellStyle);
			xssfCell.setCellValue("셀2");
			xssfCell = xssfRow.createCell((short) 2);
			xssfCell.setCellStyle(tableCellStyle);
			xssfCell.setCellValue("셀3");
			xssfCell = xssfRow.createCell((short) 3);
			xssfCell.setCellStyle(tableCellStyle);
			xssfCell.setCellValue("셀4");
			xssfCell = xssfRow.createCell((short) 4);
			xssfCell.setCellStyle(tableCellStyle);
			
			String localFile = "/Users/hihi/" + "excelDownTest" + ".xlsx";
			
			File file = new File(localFile);
			FileOutputStream fos = null;
			fos = new FileOutputStream(file);
			xssfWb.write(fos);
	
			if (fos != null) fos.close();
		}catch(Exception e){
	        	
		}
	}
}

결과

 

아래의 링크는 poi 라이브러리를 이용하여 엑셀 읽기 예제입니다.

 

[JAVA] 자바 POI 를 이용하여 엑셀 다운로드/ 엑셀 읽기 (3)

이전 시간에 만든 엑셀 파일을 자바 프로그램을 이용하여 읽는 예제를 구현하도록 하겠습니다. poi 라이브러리에 대한 설명, 자바로 엑셀 다운로드 예제를 참고하실 분은 아래의 링크를 참고해��

junghn.tistory.com

 

댓글