본문 바로가기

IT/java

Apache POI

Apache POI


# 다운로드
http://poi.apache.org/
# Component
Jakarta POI
#엑셀 쓰기 예제
쓰기도 역시 읽기와 비슷합니다.
① 엑셀 워크북을 생성합니다. 행과 셀을 생성하려면 당연한 절차겠죠?
HSSFWorkbook workbook = new HSSFWorkbook();
② 시트를 생성합니다.
시트명을 파라미터로 바로 생성 합니다.
HSSFSheet sheet = workbook.createSheet("sheet name");
만약 한글로 시트명을 만들려면 다음과 같이 인코딩이 필요합니다.
HSSFSheet sheet = workbook.createSheet();
workbook.setSheetName( 0 , "한글" , HSSFWorkbook.ENCODING_UTF_16 );
③ 셀에 사용할 스타일을 미리 생성해 둡니다.
HSSFCellStyle style = wb.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBottomBorderColor(HSSFColor.BLACK.index);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setLeftBorderColor(HSSFColor.GREEN.index);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setRightBorderColor(HSSFColor.BLUE.index);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);
style.setTopBorderColor(HSSFColor.BLACK.index);
등 여러가지 스타일을 만들 수 있습니다.
스타일은 다음 주소를 참고하세요
http://jakarta.apache.org/poi/apidocs/org/apache/poi/hssf/usermodel/HSSFCellStyle.html
④ 로우를 하나 생성합니다.
HSSFRow row = sheet.createRow(0);
⑤ 셀츨 하나 생성하여 스타일을 주고 값을 입력합니다.
HSSFCell cell = row.createCell((short)0);
cell.setCellStyle(style);
cell.setCellValue("jakarta project!");
만약 한글을 입력한다면 인코딩 해야 하며 값 세팅전에 해야 합니다.
cell.setEncoding(HSSFCell.ENCODING_UTF_16); //한글 처리
cell.setCellStyle(style);
cell.setCellValue("자카드타 프로젝트!");
⑥ 모든 셀이 다 입력되었으면 파일을 만듭니다.
FileOutputStream fs = new FileOutputStream("excelfile.xls");
workbook.write(fs);
fs.close();
VIII. 쓰기샘플 소스
<%@ page language="java" contentType="text/html;charset=euc-kr" %><%@ page import="java.io.*" %><%@ page import="org.apache.poi.poifs.dev.*" %><%@ page import="org.apache.poi.hssf.record.*" %><%@ page import="org.apache.poi.hssf.record.formula.*" %><%@ page import="org.apache.poi.hssf.model.*" %><%@ page import="org.apache.poi.hssf.usermodel.*" %><%@ page import="org.apache.poi.hssf.util.*" %><html><body><%
String filepath = "C:\\Tomcat 5.0\\webapps\\ROOT\\write.xls";
try {
String[] cell_value = {"자카르타","프로젝트","www.jakartaproject.com"};
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
workbook.setSheetName(0 , "한글명" ,HSSFWorkbook.ENCODING_UTF_16);
HSSFCellStyle style = workbook.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBottomBorderColor(HSSFColor.BLACK.index);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setLeftBorderColor(HSSFColor.GREEN.index);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setRightBorderColor(HSSFColor.BLUE.index);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);
style.setTopBorderColor(HSSFColor.BLACK.index);
HSSFRow row = sheet.createRow(0);
for (int i = 0 ; i<cell_value.length; i++){
HSSFCell cell = row.createCell((short)i);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(style);
cell.setCellValue(cell_value[i]);
}
FileOutputStream fs = null;
try {
fs = new FileOutputStream(filepath);
workbook.write(fs);
} catch (Exception e) {
} finally {
if (fs != null) fs.close();
}
} catch (Exception e) {
%>
Error occurred:<%= e.getMessage() %><%
e.printStackTrace();
}
%></body></html>
# 참고로 셀병합은
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow((short) 1);
HSSFCell cell = row.createCell((short) 1);
cell.setCellValue("This is a test of merging");
//셀병합
//Region(int 시작row, short 시작col, int 종료row, short 종료col)
sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
와 같이하면 됩니다

등록일시
2011.06.22 20:14 (업로드 2011.06.22 20:14)
공개권한
일촌공개
태그
#API__Framework

'IT > java' 카테고리의 다른 글

[springframework] validation query 설정  (0) 2015.12.01
[java] equals()  (0) 2015.12.01
[java] 파일 업로드 white list 방식  (0) 2015.07.27
[java] POI사용하여 sheet분할 Excel파일 생성  (0) 2015.07.27
[java] replaceAll 정리  (0) 2015.07.27