개발 & 데이터베이스/JAVA

[JAVA] apache poi로 엑셀 생성하는 방법 #1 표 만들기

K.두부 2021. 12. 12. 13:54
반응형

Java에서는 apache poi 라이브러리를 이용하면 엑셀, 워드, 파워포인트 등 다양한 문서를 제어하고 생성할 수 있습니다. 우선 apache poi 라이브러를 사용하기 위해서는 해당 프로젝트에 추가를 해주셔야합니다. 해당 프로젝트에 라이브러리를 추가하는 방법부터 알아보겠습니다.

 

apache poi 라이브러리 설치 및 적용 방법

1. apache 홈페이지(http://poi.apache.org/download.html)로 접속해서 apache poi 라이브러리를 설치한다.

2. 설치가 완료되면 프로젝트에 라이브러리를 등록한다.

⑴ 해당 프로젝트 우클릭 후 'properties' 클릭

⑵ Java Build Path → Libraries → Classpath 클릭

⑶ Add External JARs... 클릭

⑷ 설치한 apache poi 라이브러리 경로로 가서 드래그 후 적용하면 해당 프로젝트의 Referenced Libraries에 들어간다.

 

엑셀 생성하는 방법 (간단한 표 만들기)
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.VerticalAlignment;
public class Main {
public static void main(String[] args) throws IOException {
HSSFWorkbook workBook = new HSSFWorkbook();
CellStyle defaultStyle = workBook.createCellStyle();
// 테두리 설정
defaultStyle.setBorderTop(BorderStyle.THIN);
defaultStyle.setBorderLeft(BorderStyle.THIN);
defaultStyle.setBorderRight(BorderStyle.THIN);
defaultStyle.setBorderBottom(BorderStyle.THIN);
// 줄 바꿈 및 중앙 정렬
defaultStyle.setWrapText(true);
defaultStyle.setAlignment(HorizontalAlignment.CENTER);
defaultStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 시트 생성 및 셀 높이 설정
HSSFSheet sheet = workBook.createSheet();
sheet.setDefaultRowHeightInPoints(30);
for (int i=0; i<10; i++) {
Row row = sheet.createRow(i);
for (int j=0; j<5; j++) {
Cell cell = row.createCell(j);
cell.setCellStyle(defaultStyle);
cell.setCellValue("셀 생성 (" + i + ", " + j + ")");
sheet.setColumnWidth(j, 3000);
}
}
try {
File xlsFile = new File("C:/EXCEL_TEMP/test.xls");
FileOutputStream fileOut = new FileOutputStream(xlsFile);
workBook.write(fileOut);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
workBook.close();
}
}
}

반응형