개요

생각보다 자바 프로그램에서 엑셀로 파일을 생성할 일이 많아 검색 후 필요한 스니펫 부분만 정리해둔다.

메이븐 의존성

<dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.13</version>
</dependency>

엑셀파일 읽기 코드 스니펫

// 엑셀 워크북을 생성합니다.
FileInputStream inputStream = new FileInputStream("file 경로");
HSSFWorkbook workbook = new HSSFWorkbook(inputStream);

// sheet 읽기
workbook.getSheet("sheet name");

// row 읽기
HSSFRow row = sheet.getRow(0);

// cell 읽기
HSSFCell cell = row.getCell(0);
String value = cell.getStringCellValue();

workbook.close();    

엑셀파일 쓰기 코드 스니펫

// 엑셀 워크북을 생성합니다.
HSSFWorkbook workbook = new HSSFWorkbook();

// 시트를 생성합니다.
HSSFSheet sheet = workbook.createSheet("시트이름");

HSSFCellStyle numberStyle = workbook.createCellStyle();
HSSFDataFormat format = workbook.createDataFormat();
numberStyle.setDataFormat(format.getFormat("0.0"));

// row 생성
HSSFRow row = sheet.createRow(0);

// cell 생성 #1
HSSFCell cell = row.createCell(0);
cell.setCellStyle(numberStyle);
cell.setCellValue("value");

// cell 생성 #2  
HSSFCell cell = row.createCell(1);
cell.setCellValue("value");
CellStyle hlink_style = workbook.createCellStyle();
Font hlink_font = workbook.createFont();
hlink_font.setUnderline(Font.U_SINGLE);
hlink_font.setColor(IndexedColors.BLUE.getIndex());
hlink_style.setFont(hlink_font);

// cell 생성 #3
HSSFCell cell = row.createCell(2);
cell.setCellValue("value");
Hyperlink hyperLink = createHelper.createHyperlink(Hyperlink.LINK_URL);
hyperLink.setAddress("URL");
cell.setHyperlink(hyperLink);
cell.setCellStyle(hlink_style);

// 엑셀파일 기록
workbook.write(new FileOutputStream("파일이름"));

workbook.close();