HSSFWorkbook wb = new HSSFWorkbook(); // 신규 workbook 생성
HSSFSheet s = wb.createSheet(); // sheet 생성
HSSFRow r = null; // row 객체의 레퍼런스 선언
HSSFCell c = null; // cell 객체의 레퍼런스 선언
HSSFCell c2 = null; // cell 객체의 레퍼런스 선언
HSSFCellStyle label = wb.createCellStyle(); // 제목 스타일
HSSFCellStyle header = wb.createCellStyle(); // 헤더 스타일
HSSFCellStyle data = wb.createCellStyle(); // 데이터셀 스타일
HSSFCellStyle dataLeft = wb.createCellStyle(); // 데이터셀 스타일
HSSFFont lf = wb.createFont(); // 제목 폰트스타일
HSSFFont df = wb.createFont(); // 데이터셀 폰트스타일
/* 제목의 폰트와 스타일 지정 */
lf.setFontHeightInPoints ((short) 14); // 폰트 크기
lf.setColor (lf.COLOR_NORMAL); // 검정색
lf.setBoldweight (lf.BOLDWEIGHT_BOLD);
lf.setFontName ("굴림체"); // 굴림체
label.setBorderTop (label.BORDER_THIN);
label.setBorderBottom (label.BORDER_THIN);
label.setBorderLeft (label.BORDER_THIN);
label.setBorderRight (label.BORDER_THIN);
label.setFont (lf); // 제목 폰트스타일 지정
label.setAlignment (label.ALIGN_CENTER); // 가운데 정렬
label.setVerticalAlignment (label.VERTICAL_CENTER); // 가운데 정렬(세로)
/* 헤더와 데이터셀의 폰트 및 스타일 지정 */
df.setFontHeightInPoints ((short) 9); // 폰트 크기 지정
df.setFontName ("굴림체"); // 굴림체
header.setBorderTop (header.BORDER_THIN);
header.setBorderBottom (header.BORDER_THIN);
header.setBorderLeft (header.BORDER_THIN);
header.setBorderRight (header.BORDER_THIN);
header.setFillPattern ((short) 1);
header.setFillForegroundColor (df.PALE_BLUE); // 배경색 지정
header.setAlignment (header.ALIGN_CENTER);
header.setVerticalAlignment (header.VERTICAL_CENTER);
header.setFont (df); // 헤더의 폰트스타일 지정
/* sheet의 이름 지정 (영문으로 할것) */
wb.setSheetName (0,"CMTS");
/* 제목 삽입 */
r = s.createRow ((short)0);
r.setHeight ((short) 0x250);
c = r.createCell ((short) 0);
c.setCellStyle (label);
c.setEncoding (c.ENCODING_UTF_16);
c.setCellValue ("지역별 CMTS 현황보고서");///////제목
Region region = new Region (0, (short) 0, 0, (short) 4); // 5 cell 합병 (데이터셀의 크기에 맞춰서 수정)
s.addMergedRegion (region);
/* 헤더 삽입 */
r = s.createRow ((short) 1);
r.setHeight ((short) 0x150); // row 높이 설정
c = r.createCell ((short) 0);
c.setCellStyle (header);
c.setEncoding (c.ENCODING_UTF_16);
c.setCellValue ("사업소명");
s.setColumnWidth ((short) 0, (short) ((70) / ((double) 1 / 60))); // cell의 폭 설정
c = r.createCell ((short) 1);
c.setCellStyle (header);
c.setEncoding (c.ENCODING_UTF_16);
c.setCellValue ("분배센터명");
s.setColumnWidth ((short) 1, (short) ((70) / ((double) 1 / 50)));
c = r.createCell ((short) 2);
c.setCellStyle (header);
c.setEncoding (c.ENCODING_UTF_16);
c.setCellValue ("CMTS명");
s.setColumnWidth ((short) 2, (short) ((100) / ((double) 1 / 80)));
c = r.createCell ((short) 3);
c.setCellStyle (header);
c.setEncoding (c.ENCODING_UTF_16);
c.setCellValue ("시간");
s.setColumnWidth ((short) 3, (short) ((100) / ((double) 1 / 80)));
c = r.createCell ((short) 4);
c.setCellStyle (header);
c.setEncoding (c.ENCODING_UTF_16);
c.setCellValue ("CM수");
s.setColumnWidth ((short) 4, (short) ((190) / ((double) 1 / 50)));
//System.out.println("rsVec:"+rsVec+":");
if (rsVec != null)
{
String[] rowdata ;
for (rownum = (short) 2; rownum < rsVec.size() + 2; rownum++)
{
rowdata = (String[])rsVec.elementAt(rownum-2);
r = s.createRow (rownum); // row 생성
r.setHeight ((short) 0x139); // row 높이 설정
c = r.createCell ((short) 0);
c.setCellStyle (data);
c.setEncoding (c.ENCODING_UTF_16); // 한글 출력을 위해 반드시 필요
c.setCellValue (rowdata[0]);
//System.out.println("rowdata[0]:"+rowdata[2]+":");
c = r.createCell ((short) 1);
c.setCellStyle (data);
c.setEncoding (c.ENCODING_UTF_16); // 한글 출력을 위해 반드시 필요
c.setCellValue (rowdata[1]);
c = r.createCell ((short) 2);
c.setCellStyle (data);
c.setEncoding (c.ENCODING_UTF_16); // 한글 출력을 위해 반드시 필요
c.setCellValue (rowdata[2]);
c = r.createCell ((short) 3);
c.setCellStyle (dataLeft);
c.setEncoding (c.ENCODING_UTF_16); // 한글 출력을 위해 반드시 필요
c.setCellValue (rowdata[3]);
c = r.createCell ((short) 4);
c.setCellStyle (dataLeft);
c.setEncoding (c.ENCODING_UTF_16); // 한글 출력을 위해 반드시 필요
c.setCellValue (rowdata[4]);
}
}