[POI] poi¸¦ ÀÌ¿ëÇÑ Excel ´Ù¿î·Îµå
¿äÁò¿¡ ¿Ö ÀÌ·¸°Ô ÇÇ°ïÀÌ Ç®¸®Áö ¾Ê´ÂÁö ¸ð¸£°Ú³×¿ä. :D
Ç×»ó ÇÇ°ïÇÏ°í ´«Àº °è¼Ó ³ªºüÁö°í ¾ÆÇÁ±â¸¸ ÇÕ´Ï´Ù.
¸¶Ä¡ ³» Àλý ½ÅüÀûÀÎ Á¤Á¡À» Âï°í ³»·Á¿À´Â µíÇÑ ´À³¦À̶ö±î ¤»¤»¤»
±×³É ´À³¦ÀÌ°ÚÁÒ ¤»¤»
À̹ø¿£ poi¸¦ ½á¼ Excel ´Ù¿î·Îµå¸¦ Çغ¼±î »ý°¢ÁßÀÌ¿¡¿ä ..
ÀÚ ±×·³ poi´Â ¹«¾ùÀϱî ?
¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ´ÙÅ¥¸ÕÆ®¸¦ À§ÇÑ JAVA API¶ó°í µÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ poi¿¡´Â ¿©·¯°¡Áö ¼ºê ÇÁ·ÎÁ§Æ®µéÀÌ Á¸ÀçÇÕ´Ï´Ù.
ÀÌ poi¸¦ ÀÌ¿ëÇؼ ´ëÇ¥ÀûÀ¸·Î excelÀ» Çڵ鸵 ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î µ¥ÀÌÅͺ£À̽º¿¡ Á¸ÀçÇÏ´Â µ¥ÀÌÅ͵éÀ» excel·Î ÃßÃâÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
±× ¹æ¹ýÁß¿¡¼´Â poi¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ ÀÖÁö¸¸ html table·Î ±×·Á¼ excel·Î ÀúÀåÇÏ´Â ¹æ¹ýµµ ÀÖ½ÀÁÒ.
¿Ö »ç¿ëÇØ¾ß Çϳª¶ó°í ¹¯´Â´Ù¸é
°£´ÜÇÏ°Ô Excel ÆÄÀÏÀ» java·Î ÀÐ°í ¾²°í Çϱâ À§ÇÔÀÌ´Ù¶ó°í ¸»¾¸µå¸± ¼ö ÀÖ½À´Ï´Ù.
»ç½Ç ¹ø¿ªÇÏ´Ù°¡ ÀÌ·± ½Ã.. ¤± °øºÎ Á» Çؾ߰ھî¿ë
Á¦°¡ poi·Î ¹»Çß´ÂÁö¿¡ ´ëÇؼ ¾ê±âÇÏ°í Äڵ带 Àû¾î³»·Á°¡µµ·Ï ÇÒ°Ô¿ä.
Á¦°¡ ÇÊ¿äÇÑ°Ç DB¿¡¼ ¾î¶² °ªÀ» °¡Á®¿Àµç Ä÷³ÀÌ ¸î°³ÀÌµç »ó°ü¾øÀÌ Excel ½ÃÆ®¶û ¸ÅÇνÃÄÑ µ¥ÀÌÅ͸¦ Ãâ·ÂÇØÁà¾ß Çß½À´Ï´Ù.
»ùÇÃÀ» °¡Á®´Ù°¡ »ç¿ëÀ» Çغôµ¥ ÀÏ´Ü °®´Ù³õ°í µÇ´ÂÁö ¾ÈµÇ´ÂÁö¸¸ ÇÏ´Ùº¸´Ï for¹®À̶û ¹Ýº¹Äڵ尡 ÀÛ¿ ÇÏ´õ±º¿ä ¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤».. ÀÌ°Ô ³ªÀÇ ÁøÂ¥ ½Ç·Â
¿ø·¡ ÄÚµå´Â for¹®ÀÌ ³¹«ÇؾßÇÔ ¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»
±×·¡¼ ¹Ù²å½À´Ï´Ù.
±× ¹Ù²Û°É Æ÷½ºÆÃÇÕ´Ï´Ù.
1. Excel Ä÷³À̶û DB Ä÷³À̶û ¸ÅÇÎ ½Ãų·Á¸é ¾î¶»°Ôµç ¸ÅÇεǴ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ¾î¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ¾ú½À´Ï´Ù. ¹è¿ÀÌ µÇµç ¸ÊÀÌ µÇµç ¹¹°¡ µÇµç ¹¹°¡ ÀÖ¾î¾ß ¼Ò½º´Â ÅÍÄ¡ÇÏÁö ¾Ê°í ¸ÅÇεǴ ºÎºÐ¸¸ ¼öÁ¤ ¹Ù²ãÁÖ¸é µÇÁö ¾Ê°ÚÀ½ ? ±×·¡¼ ªÀº »ý°¢À¸·Î ÀÌ·¸°Ô ó¸®Çß½À´Ï´Ù.
map.put("drwng_nm", FormatData.nullCheck(rs.getString("drwng_nm"))+"@@3");
ÀÌ·¸°Ô °¡Á®¿Ã¶§ Ä÷³ ¼ø¼¸¦ ±×³É °ª¿¡´Ù°¡ ¹Ú¾ÆÁá¾î¿ä. ¹°·Ð Àú ½Çµ¥ÀÌÅ͸¦ ÃßÃâÇس¾¶§µµ split ÇؾßÇÕ´Ï´Ù. Àú ¼ýÀÚ´Â ½Çµ¥ÀÌÅÍ¿Í °°ÀÌ Çѹø¸¸ »ç¿ëµÇ°Ô µË´Ï´Ù.
ÀÌ·¸°Ô db¿¡¼ µ¥ÀÌÅÍ´Â °¡Á®¿Â°Ì´Ï´Ù.
2. ´ÙÀ½¿¡´Â Excel¿¡ ÀÛ¼ºµÉ Ä÷³À» ¼±¾ðÇؾßÇÕ´Ï´Ù.
String[] titleArr = {"¹øÈ£","µµ¸é°æ·Î","¼³°è°Ç¸í","½Ã°ø°Ç¸í","ÁÖÁ¦¸ñ"...};
Àú´Â ¹è¿¿¡ ´ã¾Ò¾î¿ä. °á±¹Àº Àú ¹è¿ÀÇ ¼ø¼¶û ¾Æ±î µ¥ÀÌÅͺ£À̽ºÀÇ @@µÚ¿¡ ¼ýÀÚ¶û ÀÏÄ¡ÇØ¾ß Çϴ°ÅÁÒ.
ÀÌÁ¦ ±âº»ÀûÀÎ ÀÛ¾÷Àº µÈ°Å¿¡¿ä. EXCEL¿¡ Ä÷³À̶û ±× Ä÷³¿¡ µé¾î°¥ °ªµéÀ» ´Ù °¡Á®¿Â°Å´Ï±î¿ä.
poi·Î Àú°ÍµéÀ» ¾î¶»°Ô ´ã¾ÆÁà¾ß Çϳª¸¦ °í¹ÎÇغ¼ ½Ã°£ÀÔ´Ï´Ù.
3. poi·Î Excel ÀÛ¼ºÇϱâ
Ŭ·¡½º¸¦ »õ·Î ÀÛ¼ºÇؼ ºÐ¸®½ÃÄ×½À´Ï´Ù.
±×¸®°í ±× Ŭ·¡½º ±¸Á¶´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
DataSetVO dsv = new DataSetVO();
HSSFCell cell = null;
HSSFSheet sheet = null;
HSSFRow row = null;
HSSFWorkbook workbook = null;
int tr = 0;
public GetExcelHandler(DataSetVO dvo) { this.dsv = dvo; }//»ý¼ºÀÚ
public HSSFWorkbook excute() {}//½Ç È£Ãâ¸Þ¼µå
private void headerMapper() {}//EXCEL Ä÷³ ¸ÅÆÛ
private void dataMapper() {}//DATA ¸ÅÆÛ
private HSSFCellStyle styleMapper(int no) {}//Style ¸ÅÆÛ
private void mergeJobCell() {}//¼¿ º´ÇÕ
ÀÛ¾÷ ¼ø¼´Â ÀÌ·¸½À´Ï´Ù.
DB -> excute È£Ãâ(DataSetVO¿¡ header, data, style, megerinfo¸¦ ´ã¾Æ ³Ñ±è) ->
header ¼ÂÆÃ(style Àû¿ë) -> data¼ÂÆà -> ¼¿ º´ÇÕ
±×³É »ý°¢³ª´Â´ë·Î ¸· §°Å¶ó Ŭ·¡½º ¼³°è¿øÄ¢µµ Àß ¸ð¸£´Â ........ ±Ùµ¥ ±×°Ç ³ª¸ô¶ó¶ó ¤»¤»¤»
ÇÒ°Å´Ï±î »ý°ü¾øÀ½ ¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤»¤» ÀÌ Æ÷½ºÆÃÀÌ ÇØ°¡ µÇÁö ¾Ê±â¸¦ ¤»¤»
public GetExcelHandler(DataSetVO dvo) {
this.dsv = dvo;
}
»ý¼ºÀÚÀÔ´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ý¼ºÇÒ ´ç½Ã¿¡ ¼¿ º´ÇÕ Á¤º¸¶û data, header µ¥ÀÌÅ͵éÀ» ´ã°í ÀÖ½À´Ï´Ù.
styleµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
ÇØ´õ¸¦ ¸ÅÇÎÇÕ´Ï´Ù ¹¹ ÀÌ ¾ê±ä Ä÷³À» »ý¼ºÇÑ´Ù°¡ ½±°Ú³×¿ä.
private void headerMapper() {
for(tr=0; tr<dsv.getHeaderData().size(); tr++) {
//¾Æ±î Ä÷³À̶ó°í ¸¸µé¾îµÐ ¹è¿À» ´ãÀº ¸®½ºÆ®¸¦ ¹Ýº¹ÇÕ´Ï´Ù. Ä÷³ÀÌ 2ÁÙÀ̶ó¸é 2¹ø µ¹°ÚÁÒ.
row = sheet.createRow((short) tr ); //»ý¼ºµÈ sheet¿¡ row¸¦ »ý¼ºÇÕ´Ï´Ù.
for(int i=0; i<dsv.getHeaderData().get(tr).length; i++) { //¸®½ºÆ®ÀÇ ¹è¿À» ¹Ýº¹ÇÕ´Ï´Ù.
cell = row.createCell(i); //row¿¡ cellÀ» »ý¼ºÇÕ´Ï´Ù. i¶ó´Â °ÍÀº ¼¿ÀÇ ¼ø¼¿¡¿ä.
cell.setCellStyle(styleMapper(0)); //¼¿ ½ºÅ¸ÀÏÀ» Àû¿ëÇØ¿ä. ¸Þ¼µåÀε¥ ¾Æ·¡¼ º¼°Ô¿ä.
cell.setCellValue(dsv.getHeaderData().get(tr)[i]); //cellvalue ¼ÂÆÃ
if(!StringUtils.isEmpty(dsv.getHeaderData().get(tr)[i])){
//ÀÌ°Ç Àú °°Àº °æ¿ì header°¡ 2ÁÙÀÌ¶ó º´ÇÕµµ ÇÏ°í °ªÀÌ ¾ø´Â ¼¿ÀÌ ÀÖ¾î¼ .. ±×°É ºÐ°£Çϱâ À§ÇÔ
sheet.autoSizeColumn((short)i); //cellÀÌ nullÀÌ ¾Æ´Ï¶ó¸é ¼¿¿¡ µç text°ªÀ¸·Î Ä÷³ width¸¦ Á¶Á¤
sheet.setColumnWidth(i, (sheet.getColumnWidth(i))+1024 ); //±× »çÀÌÁî·Î ºÎÁ·Çؼ ´õ Å©°Ô Á¶
}
}
}
}
private void dataMapper() {
ArrayList<String> keySet = new ArrayList<String>();
Iterator<String> mapIter = dsv.getDataList().get(0).keySet().iterator();
while(mapIter.hasNext()) keySet.add(mapIter.next().toString());
//mapÀÇ Á£¹ø° index¸¦ °¡Á®¿Í¼ keySetÀ» ¹Ì¸® ´ã¾Æ³õ¾Æ¿ä.
//keySet´Â µ¿ÀÏÇÏ´Ï±î ¹Ýº¹ÀûÀ¸·Î °¡Á®¿Ã ÇÊ¿ä ¾øÀÚ³ª¿ä.
for(int i=0; i<dsv.getDataList().size(); i++) {
//½Çµ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´Â ¸®½ºÆ®¸¦ ¹Ýº¹ÇÕ´Ï´Ù.
row = sheet.createRow(tr); //sheet¿¡ row¸¦ »ý¼ºÇÏ°í
cell = row.createCell(0);
//Excel ù¹ø° ¼¿¿¡ ¹øÈ£¿À» ÁÖ±â À§ÇØ ÀϺη¯ 0À¸·Î ¹ÚÀº°Å¿¡¿ä.
cell.setCellValue(i+1); //±×¸®°í Áõ°¡ÇÏ´Â i °ªÀ» ³Ö¾ú½À´Ï´Ù.
for(String key : keySet) { //keySet List°¡ ¹Ýº¹ÇÕ´Ï´Ù.
String[] keyLocale = dsv.getDataList().get(i).get(key).split("@@");
//¾Æ±î DB¿¡ ½ÇDATA@@INDEX·Î ´ãÀº ¾Ö¸¦ splitÇØ¿ä.
cell = row.createCell(Integer.parseInt(keyLocale[1]));
//@@µÚÀÇ index·Î ÇØ´ç À§Ä¡¿¡ ¼¿À» »ý¼ºÇÕ´Ï´Ù~
sheet.autoSizeColumn((short)i); //¼¿ Å©±â¸£ Á¶Á¤Çϱ¸¿ä.
sheet.setColumnWidth(i, (sheet.getColumnWidth(i))+1024 );
//¸ðÀÚ¶ö °Í °°¾Æ¼ Á» ´õ Å©°Ô
cell.setCellStyle(styleMapper(1)); //½ºÅ¸ÀÏ Àû¿ë
cell.setCellValue(keyLocale[0]); //@@ ¾ÕÀÇ °ªÀ¸·Î ¼¿ µ¥ÀÌÅÍ ¹Ý¿µ
}
tr++;
//ÀÌ trÀº ¹¹³Ä¸é¿ä. ¾Æ±î header ¸ÅÆÛ¿¡¼ excel Çì´õµé ¼ÂÆà ÈÄ Çà¿¡ ´ëÇÑ °ªÀ» °¡Áö°í ÀÖ½À´Ï´Ù.
//±×·¡¾ß µ¥ÀÌÅÍ°¡ ¸î ÇàºÎÅÍ µé¾î°¡¾ß ÇÒÁö ¾Æ´Ï±î¿ä.
}
}
//½ºÅ¸ÀÏÀÌ¿¡¿ä. ±×³É header¿Í body·Î ³ª´²¼ Àû¿ë¸¸Çß¾î¿ä.
//ÀÌ ºÎºÐÀÌ ¸ðµâÈ ÇÏ·Á´Ï±î Á» ¾Ö¸ÅÇÏ´õ¶ó±¸¿ä. ´Ù¸¥°Íµµ Àߵƴٶó°í º¸±ä Èûµë ÇÖÇÖ
private HSSFCellStyle styleMapper(int no) {
HSSFCellStyle CellStyle = workbook.createCellStyle();
if(no == 0) { //0À̸é header styleÀÌ°í
CellStyle.setBorderBottom(dsv.getHeaderBorder()); //¹ØÀ¸·Î 4ÁÙ±îÁø ¼¿ Å׵θ®
CellStyle.setBorderLeft(dsv.getHeaderBorder());
CellStyle.setBorderRight(dsv.getHeaderBorder());
CellStyle.setBorderTop(dsv.getHeaderBorder());
CellStyle.setFillPattern(dsv.getHeaderFillpattern()); //¼¿ ÆÐÅÏ
CellStyle.setFillForegroundColor(dsv.getHeaderFillforegroundColor()); //¼¿ ¹è°æ »ö
CellStyle.setAlignment(dsv.getHeaderAlignment()); //»ø Á¤·Ä
CellStyle.setVerticalAlignment(dsv.getHeaderVerticalAlignment());//¼¿ vÁ¤·Ä
} else { //1À̸é body styleÀÌ°Ô ¤»¤»
CellStyle.setAlignment(dsv.getBodyAlignment());
CellStyle.setVerticalAlignment(dsv.getBodyVerticalAlignment());
}
return CellStyle;
}
//mergeÀÔ´Ï´Ù
//merge ÀÛ¾÷À» ÇØÁÖ´Â ¿ÀÌ
// sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(lvl_2[0]),v ...
//À̺κÐÀÔ´Ï´Ù. ±Ùµ¥ CellRangeAddress¿¡ »ý¼ºÀÚ¿¡ °ªÀ» ³Ñ°ÜÁà¾ß Çϴµ¥ ±× °ªÀÇ ÇüÅ´ ¾Æ·¡¿Í
//°°¾Æ¿ä.
// new CellRangeAddress(½ÃÀÛ row, Á¾·á row, ½ÃÀÛ col, Á¾·á col)
//±×·¡¼ °ªÀ» ¹è¿¿¡ ´ã¾Æ¼ ÇϳªÀÇ index¿¡ 1@1@1@1# °ú°°ÀÌ ³Ö¾ú¾î¿ä. º´ÇÕµÉ ¼¿ÀÌ ¸¹´Ù¸é
//1@1@1@1#1@1@1@1#1@1@1@1#1@1@1@1#1@1@1@1# ÀÌ·¯Çí µÇ°ÚÁö¿ä.
private void mergeJobCell() {
String[] lvl_1 = dsv.getMergeData().split("#"); //#À¸·Î ÀÚ¸£°í
for(int lvl1=0; lvl1<lvl_1.length; lvl1++) {
String[] lvl_2 = lvl_1[lvl1].split("@") ; //@À¸·Î À߶ó
for(int lvl2 = 0; lvl2<lvl_2.length; lvl2++) {
sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(lvl_2[0]), Integer.parseInt(lv l_2[1]), Integer.parseInt(lvl_2[2]),Integer.parseInt(lvl_2[3])));
//º´ÇÕÇÕ´Ï´Ù.
}
}
}
ÀÌ°Ô À§¿¡ ¸Þ¼µåµéÀ» ½ÇÇàÇÏ´Â ½ÇÇà ¸Þ¼µå ¤»¤» À̰͸¸ public ÀÌÁö¿© ¤»¤»
¹°·Ð Ŭ·¡½º ³»ºÎ¿¡ »ý¼ºµÈ ¸Þ¼µåÀ̱¸¿ä. ¿ÜºÎ¿¡¼´Â Ŭ·¡½º »ý¼ºÈÄ¿¡ È£ÃâÇؾßÇÕ´Ï´Ù.
Ŭ·¡½ºÀÇ ¸®ÅÏ°ªÀº HSSFWorkbook ÇüÀ¸·Î return ÇÕ´Ï´Ù.
public HSSFWorkbook excute() {
workbook = new HSSFWorkbook();
sheet = workbook.createSheet(dsv.getSheetName());
if(dsv.getHeaderYn()) headerMapper();
dataMapper();
mergeJobCell();
return workbook;
}
4. ÀÏ´Ü HSSFWorkbook ÇüÅ·Πreturn±îÁö ¹Þ¾Ò¾î¿ä. ±×·¯¸é Àú°É ¾î¶»°Ô »ç¿ëÀÚ°¡ ´Ù¿î¹Þ°Ô ÇÒ¼öÀÖ³ª ? ¶ó´Â°Í ÀÏ´Ü streamÀ¸·Î ¶³±¸´Â°Ç °£´ÜÇÕ´Ï´Ù¸¸ .. À¥À» »ç¿ëÇÏ´Â »ç¿ëÀÚµéÀ» ±×·±°É ¹Ù¶óÁö ¾Ê½À´Ï´Ù. ´Ù¿î¹Þ¾Æ¾ß Á¦¸À ¾îµð·Î ´Ù¿î·ÎµåµÇ´ÂÁø ¾Ë¾Æ¾ßÁÒ ¤»¤»
=================¼öÁ¤ 2013³â 5¿ù 10ÀÏ=====================
±âÁ¸ÀÇ µ¥ÀÌÅͺ£À̽º¿¡¼ ¹Þ¾Æ¿Â °ªÀ» ¾î¶»°Ô ¿¢¼¿ÀÇ Ä÷³°ú ¸ÅÇνÃÅ°´ÂÁö¿¡ ´ëÇÑ ³»¿ëÀÌ ¾Æ·¡¿Í °°¾ÒÁÒ.
map.put("drwng_nm", FormatData.nullCheck(rs.getString("drwng_nm"))+"@@3");
@@ÀÇ µÞºÎºÐÀÌ ¿¢¼¿ Ä÷³ À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â ºÎºÐÀ̾ú½À´Ï´Ù.
ÀÌ°ÍÀ» Action´Ü¿¡¼¸¸ ¼öÁ¤ÇÒ ¼ö ÀÖ°Ô ¸¸µé¾ú½À´Ï´Ù.
Áï, DAO´Â °Çµå¸± ÇÊ¿ä°¡ ¾ø´Â°Ì´Ï´Ù. return Çü¸¸ ¸ÂÀ¸¸é ±×³É °®´Ù°¡ ¾²¸é µÇ´Â°ÅÁÒ.
String[] titleArr = {"¹øÈ£@@cnt","µµ¸é°æ·Î","¼³°è°Ç¸í@@cnst_nm"....
ÀÌ·¸°Ô º¯°æÇß±¸¿ä. Ä÷³À» Á¤ÀÇÇÑ ¹è¿ÀÇ µÚ¿¡ "@@HashMapÀÇ Å°°ª"À¸·Î ±¸¼ºÇß½À´Ï´Ù.
½ÇÁ¦·Î Àú ¹è¿À» ÅëÇؼ µ¥ÀÌÅͺ£À̽º¿¡¼ °¡Áö°í¿Â HashMapÀÇ µ¥ÀÌÅ͸¦ key°ªÀ» ÅëÇؼ °¡Áö°í ¿Ã ¼ö ÀÖ½À´Ï´Ù.
Á¤ÀÇÇصРŬ·¡½ºÀÇ »ý¼ºÀÚ¿¡ ³Ö¾îÁà¾ß ÇÒ ±âº» °ªµéÀÔ´Ï´Ù.
¾Æ·¡ÀÇ °ªÀ» ¼ÂÆÃÇÏ°í VO¸¦ ´øÁ®¾ß¸¸ÀÌ µ¥ÀÌÅÍ°¡ ³ª¿É´Ï´Ù.
´Ü, Style ¹«¹æÇÕ´Ï´Ù. ±Ùµ¥ ÁöÁ¤¾ÈÇÏ°Ô µÉ ½Ã, ¿øÇÏÁö ¾Ê´Â »ö»óÀÌ ¼ÂÆõÉÁöµµ ¸ð¸¨´Ï´Ù.
DataSetVO dsv = new DataSetVO();
dsv.setHeaderData(str); //Excel Ä÷³À» ±¸¼ºÇÒ String[]Çü ArrayList
dsv.setDataList(mapList); //Excel µ¥ÀÌÅ͸¦ ±¸¼ºÇÒ HashMap<String, String> Çü ArrayList
dsv.setSheetName("µµ¸é¸®½ºÆ®"); //Excel Sheet ¸í
dsv.setHeaderYn(true); //Excel Ä÷³À» ±¸¼ºÇÒÁö¿¡ ´ëÇÑ ¿©ºÎ
dsv.setHeaderBorder(HSSFCellStyle.BORDER_THIN);
//Excel Ä÷³ÀÇ Borer °ª (top, bottom, right, left ÅëÀÏ Àû¿ë)
dsv.setHeaderAlignment(HSSFCellStyle.ALIGN_CENTER);
//Excel Ä÷³ÀÇ Á¤·Ä °ª (HSSFCellStyle)
dsv.setHeaderVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //Excel Ä÷³ÀÇ ¼¼·Î Á¤·Ä
dsv.setHeaderFillpattern(HSSFCellStyle.SOLID_FOREGROUND); //Excel Ä÷³ÀÇ ¹è°æ ÆÐÅÏ
dsv.setHeaderFillforegroundColor(HSSFColor.LIGHT_YELLOW.index); //Excel ¹è°æ »ö ÁöÁ¤
dsv.setBodyBorder(HSSFCellStyle.BORDER_DOTTED);
//Excel Body Data ¼¿ÀÇ border (right, left, bottom)
dsv.setBodyAlignment(HSSFCellStyle.ALIGN_LEFT); //Excel Body Data ¼¿ÀÇ °¡·Î Á¤·Ä
dsv.setBodyVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
//Excel Body Data ¼¿ÀÇ ¼¼·Î Á¤·Ä
dsv.setMergeData(mgData);
HSSFWorkbook wb = geh.excute();
geh.excute()¸¦ ÅëÇؼ HSSFWorkbookÇüÀÇ Excel µ¥ÀÌÅ͸¦ ¹Ýȯ¹Þ¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù.
Ŭ·¡½º ÷ºÎÇصѰԿä ~ Á» ÇãÁ¢ÇÏÁö¸¸ Âü°íÇϼ¼¿ä ¤»¤»