Jakarta POI
VII. 엑셀 쓰기예제
쓰기도 역시 읽기와 비슷합니다.
① 엑셀 워크북을 생성합니다. 행과 셀을 생성하려면 당연한 절차겠죠?
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 = {"자카르타","프로젝트","http://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();
와 같이하면 됩니다