●예제



<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

    <%@ page import="java.util.*,

java.io.*,

java.util.List,

java.util.HashMap,

org.apache.poi.xssf.usermodel.XSSFCellStyle,

org.apache.poi.xssf.usermodel.XSSFFont,

org.apache.poi.xssf.usermodel.XSSFCell,

org.apache.poi.xssf.usermodel.XSSFRow,

org.apache.poi.xssf.usermodel.XSSFSheet,

org.apache.poi.xssf.usermodel.XSSFWorkbook,

org.apache.poi.xssf.usermodel.XSSFColor,

org.apache.poi.ss.util.CellRangeAddress,

org.apache.poi.ss.usermodel.Font,

org.apache.poi.ss.usermodel.IndexedColors,

com.kait.mms.common.util.*,

com.kait.ims.inven.inven.vo.InvenVo,

com.kait.ims.srch.vo.SrchVo" %>


 

<%




String sFileName = "tem.xlsx";

//String sFileName = "ItemList" + "(" + StrUtil.gfGetCurDateTime() + ")" + ".xls";

sFileName = new String ( sFileName.getBytes("KSC5601"), "8859_1");


out.clear();

out = pageContext.pushBody();

response.reset(); // 이 문장이 없으면 excel 등의 파일에서 한글이 깨지는 문제 발생.


String strClient = request.getHeader("User-Agent");


String fileName = sFileName;


if (strClient.indexOf("MSIE 5.5") > -1) {

//response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-Disposition", "filename=" + fileName + ";");

} else {

response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";");

}


OutputStream fileOut = null;


//워크북 생성

XSSFWorkbook objWorkBook = new XSSFWorkbook();

//워크시트 생성

XSSFSheet objSheet = objWorkBook.createSheet();

//시트 이름

objWorkBook.setSheetName(0 , "시트명" );

//행생성

XSSFRow objRow = objSheet.createRow((short)0);

//셀 생성

XSSFCell objCell = null;

//------------------------



objRow = objSheet.createRow((short)0);



objCell = objRow.createCell((short)0);


objCell.setCellValue("aa");




objCell = objRow.createCell((short)1);


objCell.setCellValue("bb");


objCell = objRow.createCell((short)2);


objCell.setCellValue("cc");


objCell = objRow.createCell((short)3);


objCell.setCellValue("dd");


objCell = objRow.createCell((short)4);


objCell.setCellValue("ee");


objCell = objRow.createCell((short)5);


objCell.setCellValue("ff");


objCell = objRow.createCell((short)6);


objCell.setCellValue("gg");


objCell = objRow.createCell((short)7);


objCell.setCellValue("hh");









//----------------------------------------------------------------------------------------

//길이 설정

objSheet.setColumnWidth((short)0,(short)3000);

objSheet.setColumnWidth((short)1,(short)3000);

objSheet.setColumnWidth((short)2,(short)3000);

objSheet.setColumnWidth((short)3,(short)3000);

objSheet.setColumnWidth((short)4,(short)3000);

objSheet.setColumnWidth((short)5,(short)8000);

objSheet.setColumnWidth((short)6,(short)3000);

objSheet.setColumnWidth((short)7,(short)5000);


//--------------------------------------------------------------------------------------



fileOut = response.getOutputStream(); 

objWorkBook.write(fileOut);

fileOut.close();

%>                           








Posted by -현's-

댓글을 달아 주세요

●index.html


<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>엑셀 다운</title>

</head>

<body>




<a href="testxls.jsp">엑셀 다운</a>





</body>

</html>










●testxls.jsp



<%@ page language="java" contentType="text/html; charset=EUC-KR"    

pageEncoding="EUC-KR"%>

     <%@ page import="java.util.*,com.sun.org.apache.xalan.internal.xsltc.compiler.Parser,

java.io.*,

java.util.List,

java.util.HashMap,

org.apache.poi.hssf.usermodel.*,

org.apache.poi.hssf.*,

org.apache.poi.hssf.util.HSSFColor,

org.apache.poi.hssf.util.Region" %>




<%

/* jsp 로직 Start*/




String sFileName = "엑셀파일" + ".xls";

sFileName = new String ( sFileName.getBytes("KSC5601"), "8859_1");


out.clear();

out = pageContext.pushBody();

response.reset(); // 이 문장이 없으면 excel 등의 파일에서 한글이 깨지는 문제 발생.


String strClient = request.getHeader("User-Agent");


String fileName = sFileName;


if (strClient.indexOf("MSIE 5.5") > -1) {

//response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-Disposition", "filename=" + fileName + ";");

} else {

response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";");

}


OutputStream fileOut = null;


//워크북 생성

HSSFWorkbook objWorkBook = new HSSFWorkbook();

//워크시트 생성

HSSFSheet objSheet = objWorkBook.createSheet();

//시트 이름

objWorkBook.setSheetName(0 , "1번시트" , HSSFWorkbook.ENCODING_UTF_16 );

//행생성

HSSFRow objRow = objSheet.createRow((short)0);

//셀 생성

HSSFCell objCell = null;



//------------------------------------------------------------------------------------


//병합


//제목

objSheet.addMergedRegion(new Region(0,(short)0,0,(short)7));  //제목


//상단

objSheet.addMergedRegion(new Region(1,(short)0,3,(short)0));    //구분

objSheet.addMergedRegion(new Region(1,(short)1,3,(short)1));    //2012년 폐기수량

objSheet.addMergedRegion(new Region(1,(short)2,3,(short)2)); //2013년 폐기수량

objSheet.addMergedRegion(new Region(1,(short)3,1,(short)7)); //평가전

objSheet.addMergedRegion(new Region(2,(short)3,3,(short)3)); //2013년 평가대상

objSheet.addMergedRegion(new Region(2,(short)4,2,(short)7)); //보존기간

objSheet.addMergedRegion(new Region(3,(short)4,3,(short)4)); //10년

objSheet.addMergedRegion(new Region(3,(short)5,3,(short)5)); //5년

objSheet.addMergedRegion(new Region(3,(short)6,3,(short)6)); //3년

objSheet.addMergedRegion(new Region(3,(short)7,3,(short)7)); //1년




//-----------------------------------------------------------------

//스타일 설정



//스타일 객체 생성 

HSSFCellStyle styleHd = objWorkBook.createCellStyle();    //제목 스타일

HSSFCellStyle styleSub = objWorkBook.createCellStyle();   //상단 스타일

HSSFCellStyle styleCon = objWorkBook.createCellStyle();   //내용 스타일

HSSFCellStyle styleBody = objWorkBook.createCellStyle();   //왼쪽 스타일

HSSFCellStyle stylesum = objWorkBook.createCellStyle();   //소계 스타일




//제목 폰트

HSSFFont font = objWorkBook.createFont();

font.setFontHeightInPoints((short)15);

font.setBoldweight((short)font.BOLDWEIGHT_BOLD);

//제목 스타일에 폰트 적용, 정렬

styleHd.setFont(font);

styleHd.setAlignment(HSSFCellStyle.ALIGN_CENTER);

styleHd.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);





//상단 폰트

HSSFFont font2 = objWorkBook.createFont();

font2.setBoldweight((short)font.BOLDWEIGHT_BOLD);

//상단 스타일 설정

styleSub.setBorderBottom(HSSFCellStyle.BORDER_THIN);

styleSub.setBottomBorderColor(HSSFColor.BLACK.index);

styleSub.setBorderLeft(HSSFCellStyle.BORDER_THIN);

styleSub.setLeftBorderColor(HSSFColor.BLACK.index);

styleSub.setBorderRight(HSSFCellStyle.BORDER_THIN);

styleSub.setRightBorderColor(HSSFColor.BLACK.index);

styleSub.setBorderTop(HSSFCellStyle.BORDER_THIN);

styleSub.setTopBorderColor(HSSFColor.BLACK.index);

//셀에 색 넣기

styleSub.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);// not BackgroundColor

styleSub.setFillForegroundColor(HSSFColor.YELLOW.index);

//글자 속성

styleSub.setFont(font2);

styleSub.setAlignment (HSSFCellStyle.ALIGN_CENTER);

styleSub.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);

styleSub.setWrapText(true); 





//왼쪽 스타일 설정

styleBody.setAlignment (HSSFCellStyle.ALIGN_LEFT);

styleBody.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);

styleBody.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);// not BackgroundColor

styleBody.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);

styleBody.setBorderBottom(HSSFCellStyle.BORDER_THIN);

styleBody.setBottomBorderColor(HSSFColor.GREY_50_PERCENT.index);

styleBody.setBorderLeft(HSSFCellStyle.BORDER_THIN);

styleBody.setLeftBorderColor(HSSFColor.GREY_50_PERCENT.index);

styleBody.setBorderRight(HSSFCellStyle.BORDER_THIN);

styleBody.setRightBorderColor(HSSFColor.GREY_50_PERCENT.index);

styleBody.setBorderTop(HSSFCellStyle.BORDER_THIN);

styleBody.setTopBorderColor(HSSFColor.GREY_50_PERCENT.index);




//내용 스타일

styleCon.setAlignment (HSSFCellStyle.ALIGN_LEFT);

styleCon.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);


styleCon.setBorderBottom(HSSFCellStyle.BORDER_THIN);

styleCon.setBottomBorderColor(HSSFColor.GREY_50_PERCENT.index);

styleCon.setBorderLeft(HSSFCellStyle.BORDER_THIN);

styleCon.setLeftBorderColor(HSSFColor.GREY_50_PERCENT.index);

styleCon.setBorderRight(HSSFCellStyle.BORDER_THIN);

styleCon.setRightBorderColor(HSSFColor.GREY_50_PERCENT.index);

styleCon.setBorderTop(HSSFCellStyle.BORDER_THIN);

styleCon.setTopBorderColor(HSSFColor.GREY_50_PERCENT.index);




//합계 스타일


stylesum.setAlignment (HSSFCellStyle.ALIGN_LEFT);

stylesum.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);

stylesum.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);// not BackgroundColor

stylesum.setFillForegroundColor(HSSFColor.SKY_BLUE.index);

stylesum.setBorderBottom(HSSFCellStyle.BORDER_THIN);

stylesum.setBottomBorderColor(HSSFColor.GREY_50_PERCENT.index);

stylesum.setBorderLeft(HSSFCellStyle.BORDER_THIN);

stylesum.setLeftBorderColor(HSSFColor.GREY_50_PERCENT.index);

stylesum.setBorderRight(HSSFCellStyle.BORDER_THIN);

stylesum.setRightBorderColor(HSSFColor.GREY_50_PERCENT.index);

stylesum.setBorderTop(HSSFCellStyle.BORDER_THIN);

stylesum.setTopBorderColor(HSSFColor.GREY_50_PERCENT.index);






//------------



//-----------------------------------------------------------------------------------




//1행



objRow = objSheet.createRow((short)0);

objRow.setHeight ((short) 0x300);


objCell = objRow.createCell((short)0);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("제목");

objCell.setCellStyle(styleHd);





//병합에 스타일 주기

for(int i=0;i<8;i++){

objRow = objSheet.createRow((short)1);

objCell = objRow.createCell((short)i);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("");

objCell.setCellStyle(styleSub);



objRow = objSheet.createRow((short)2);

objCell = objRow.createCell((short)i);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("");

objCell.setCellStyle(styleSub);



objRow = objSheet.createRow((short)3);

objCell = objRow.createCell((short)i);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("");

objCell.setCellStyle(styleSub);

}






//상단

objRow = objSheet.createRow((short)1);


objCell = objRow.createCell((short)0);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("구분");

objCell.setCellStyle(styleSub);


objCell = objRow.createCell((short)1);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("A");

objCell.setCellStyle(styleSub);


objCell = objRow.createCell((short)2);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("B");

objCell.setCellStyle(styleSub);


objCell = objRow.createCell((short)3);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("C");

objCell.setCellStyle(styleSub);




objRow = objSheet.createRow((short)2);


objCell = objRow.createCell((short)3);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("a");

objCell.setCellStyle(styleSub);


objCell = objRow.createCell((short)4);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("b");

objCell.setCellStyle(styleSub);





objRow = objSheet.createRow((short)3);


objCell = objRow.createCell((short)4);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("1");

objCell.setCellStyle(styleSub);


objCell = objRow.createCell((short)5);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("2");

objCell.setCellStyle(styleSub);


objCell = objRow.createCell((short)6);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("3");

objCell.setCellStyle(styleSub);


objCell = objRow.createCell((short)7);

objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

objCell.setCellValue("4");

objCell.setCellStyle(styleSub);


//----------------------------------------------------------------------------------------

//길이 설정

objSheet.setColumnWidth((short)0,(short)4500);

objSheet.setColumnWidth((short)1,(short)4000);

objSheet.setColumnWidth((short)2,(short)4000);

objSheet.setColumnWidth((short)3,(short)4000);

objSheet.setColumnWidth((short)4,(short)2500);

objSheet.setColumnWidth((short)5,(short)2500);

objSheet.setColumnWidth((short)6,(short)2500);

objSheet.setColumnWidth((short)7,(short)2500);

//--------------------------------------------------------------------------------------



//내용


 objRow = objSheet.createRow((short)4);

 objRow.setHeight ((short) 0x150);


 objCell = objRow.createCell((short)0);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("A");   //구분

 objCell.setCellStyle(styleBody);


 objCell = objRow.createCell((short)1);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("1");

 objCell.setCellStyle(styleCon);


 objCell = objRow.createCell((short)2);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("2");

 objCell.setCellStyle(styleCon);


 objCell = objRow.createCell((short)3);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("3");

 objCell.setCellStyle(styleCon);


 objCell = objRow.createCell((short)4); //10년

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("4");

 objCell.setCellStyle(styleCon);


 objCell = objRow.createCell((short)5);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("5");

 objCell.setCellStyle(styleCon);


 objCell = objRow.createCell((short)6);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("6");

 objCell.setCellStyle(styleCon);


 objCell = objRow.createCell((short)7);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("7");

 objCell.setCellStyle(styleCon);  

 


 

      

      

//합계

 objRow = objSheet.createRow((short)5);

 objRow.setHeight ((short) 0x150);


 objCell = objRow.createCell((short)0);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("소계");   //구분

 objCell.setCellStyle(stylesum);


 objCell = objRow.createCell((short)1);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("1");

 objCell.setCellStyle(stylesum);


 objCell = objRow.createCell((short)2);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("2");

 objCell.setCellStyle(stylesum);


 objCell = objRow.createCell((short)3);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("3");

 objCell.setCellStyle(stylesum);


 objCell = objRow.createCell((short)4); //10년

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("4");

 objCell.setCellStyle(stylesum);


 objCell = objRow.createCell((short)5);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("5");

 objCell.setCellStyle(stylesum);


 objCell = objRow.createCell((short)6);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("6");

 objCell.setCellStyle(stylesum);


 objCell = objRow.createCell((short)7);

 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);

 objCell.setCellValue("7");

 objCell.setCellStyle(stylesum);


      




fileOut = response.getOutputStream(); 

objWorkBook.write(fileOut);

fileOut.close();

%>








 























Posted by -현's-

댓글을 달아 주세요


●자바스크립트와 html로 만든 차트 솔루션이다. 비상업용으로 사용할땐 무료이고 상업적으로 사용할땐 비용이 든다.(최소 90달러이상)


http://www.highcharts.com






●예제

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>하이차트 라인 기본</title>


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<script type="text/javascript">

$(function () {

  $('#chart1').highcharts({

  title: {

   text: '제목',

x: -20 //center

  },

          subtitle: {

             text: '부제목',

                x: -20

          },

  xAxis: {  //x축

           categories: ['가로1', '가로2', '가로3', '가로4', '가로5', '가로6']

},

      yAxis: {  //y축

           title: {

                   text: '단위 (°C)'

               },

               plotLines: [{   //선

                   value: 0,

                   width: 1,

                   color: '#808080'

               }]

           },

           tooltip: {

               valueSuffix: '°Cas'

           },

           legend: {  //범례

               layout: 'vertical',

               align: 'right',

               verticalAlign: 'middle',

               borderWidth: 0

           },

           series: [{   //값

               name: 'Tokyo',

               data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5]

           }, {

               name: 'New York',

               data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0]

           },{

               name: 'New York2',

               data: [1, 2, 7, 3, 4, 10]

           }, {

               name: 'Berlin',

               data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0]

           }, {

               name: 'London',

               data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2]

           }]

       });

   });

    


</script>

</head>

<body>

<script src="../../js/highcharts.js"></script>

<script src="../../js/modules/exporting.js"></script>  <!--우측상단에 차트를 이미지로 출력할 수 있게하는 버튼을 넣는다.-->


<div id="chart1" style="min-width: 310px; height: 400px; margin: 0 auto"></div>


</body>

</html>






Posted by -현's-

댓글을 달아 주세요



●체크박스 하나만 선택되게 하기


<html>

<head>

<title>체크박스 하나만 선택하기</title>

<script type="text/javascript">

    function oneCheckbox(a){

        var obj = document.getElementsByName("checkbox1");

        for(var i=0; i<obj.length; i++){

            if(obj[i] != a){

                obj[i].checked = false;

            }

        }

    }

</script>

</head>


<body>

<form name="sendForm" method="get" >

    <input type="checkbox" name="checkbox1" value="a1" onclick="oneCheckbox(this)">a1

    <input type="checkbox" name="checkbox1" value="a2" onclick="oneCheckbox(this)">a2

    <input type="checkbox" name="checkbox1" value="a3" onclick="oneCheckbox(this)">a3

</form>

</body>

</html>










●체크박스 모두 선택, 해제


<html>

<head>

<title>체크박스 하나만 선택하기</title>

<script language="JavaScript">

<!-- 

function selectAll(checkFlag) { 

       var f = document.sendForm; 

       for(var i=0; i<f.elements.length; i++) { 

               if(f.elements[i].name == 'checkbox2'){ 

                       f.elements[i].checked = checkFlag; 

               } 

       } 

//--> 

</script>

</head>


<body>

<form name='sendForm'>

  <input type='checkbox' onclick='selectAll(this.checked);'>모두선택/해제

  <input type='checkbox' name='checkbox2' value='value1'>a1

  <input type='checkbox' name='checkbox2' value='value2'>a2

  <input type='checkbox' name='checkbox2' value='value3'>a3

  <input type='checkbox' name='checkbox2' value='value4'>a4

</form>



</body>

</html>





Posted by -현's-

댓글을 달아 주세요


●아래 사이트에서 톰켓 이클립스 플러그인 파일을 다운받는다.


http://www.eclipsetotale.com/index.html







●해당 파일을 압춘을 푼 뒤 이클립스 폴더안에 있는 plugin폴더에 복사한다.






●이클립스를 실행하면 상단 메뉴에 고양이 버튼 3개가 나온다.











- 상단 메뉴 Window->Preferences를 클릭한다.









- 왼쪽 Tomcat을 클릭하고 오른쪽에서 톰켓버전, 톰켓 폴더 위치를 지정한 후 ok를 클릭한다.










●3개의 고양이 아이콘 중 왼쪽 버튼을 누르면 톰켓이 실행되고 중간 버튼을 누르면 톰켓이 중지되고 오른쪽 버튼을 누르면 톰켓이 재시작된다.

톰켓이 실행되면 http://localhost:8080 으로 들어가서 아래처럼 나오면 정상적으로 설치가 완료된 것이다.










'프로그래밍 > JSP' 카테고리의 다른 글

poi xlsx 다운  (0) 2013.12.02
jsp poi 엑셀 다운 예제  (0) 2013.11.26
jsp 개발환경 세팅 이클립스 톰켓 플러그인  (0) 2013.10.28
jsp poi 엑셀 다운받기  (0) 2013.09.04
jsp poi 폰트, 스타일 적용  (0) 2013.09.03
jsp poi 기본  (0) 2013.09.02
Posted by -현's-

댓글을 달아 주세요

 

●버튼에 링크를 걸려면 <a href="#">을 쓰면 안되고 버튼 태그 안에 onclick="location.href='#' "을 넣어줘야한다.

ex)


<input type="button" value="버튼" onclick="location.href='#' ">



<button type="button" onclick="location.href='javascript:jsFunction();' " >버튼 누르면 자바스크립트 실행</button>

Posted by -현's-

댓글을 달아 주세요

 

●엑셀 다운받기 예제

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@page import="
org.apache.poi.hssf.usermodel.HSSFCell,
org.apache.poi.hssf.usermodel.HSSFRow,
org.apache.poi.hssf.usermodel.HSSFSheet,
org.apache.poi.hssf.usermodel.HSSFWorkbook ,
org.apache.poi.hssf.util.Region,
java.io.FileOutputStream,
java.util.List,
org.apache.poi.hssf.usermodel.HSSFCellStyle ,
org.apache.poi.hssf.usermodel.HSSFFont,
org.apache.poi.hssf.util.HSSFColor,
java.util.*,
    java.io.*

" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>엑셀 POI 테스트 완료</title>
</head>
<body>

<%

 

 

 

 

String sFileName = "파일이름" + ".xls";
sFileName = new String ( sFileName.getBytes("KSC5601"), "8859_1");


out.clear();
out = pageContext.pushBody();
response.reset();  // 이 문장이 없으면 excel 등의 파일에서 한글이 깨지는 문제 발생.

 

String strClient = request.getHeader("User-Agent");

String fileName = sFileName;

if (strClient.indexOf("MSIE 5.5") > -1) {
 //response.setContentType("application/vnd.ms-excel");
 response.setHeader("Content-Disposition", "filename=" + fileName + ";");
} else {
 response.setContentType("application/vnd.ms-excel");
 response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";");
}

OutputStream fileOut = null;

 

 

//---------------------------------------------------------------
//엑셀 처리 시작

HSSFWorkbook objWorkBook = new HSSFWorkbook();      //워크북 생성
HSSFSheet objSheet = objWorkBook.createSheet();     //워크시트 생성
HSSFRow objRow = null;        //로우 생성
HSSFCell objCell = null;       //셀 생성


//-----------------------------------------------------------------
//스타일 설정


//스타일 객체 생성
HSSFCellStyle styleHd = objWorkBook.createCellStyle();    //제목 스타일
HSSFCellStyle styleSub = objWorkBook.createCellStyle();   //부제목 스타일
HSSFCellStyle styleBody = objWorkBook.createCellStyle();   //내용 스타일


//제목 폰트
HSSFFont font = objWorkBook.createFont();
font.setFontHeightInPoints((short)15);
font.setBoldweight((short)font.BOLDWEIGHT_BOLD);

//부제목 폰트
HSSFFont font2 = objWorkBook.createFont();
font2.setFontHeightInPoints((short)11);
font2.setBoldweight((short)font.BOLDWEIGHT_BOLD);

 

//제목 스타일에 폰트 적용, 정렬
styleHd.setFont(font);
styleHd.setAlignment(HSSFCellStyle.ALIGN_CENTER);
styleHd.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);

//부제목 스타일 설정

styleSub.setFont(font2);
styleSub.setBorderBottom(HSSFCellStyle.BORDER_THIN);
styleSub.setBottomBorderColor(HSSFColor.BLACK.index);
styleSub.setBorderLeft(HSSFCellStyle.BORDER_THIN);
styleSub.setLeftBorderColor(HSSFColor.BLACK.index);
styleSub.setBorderRight(HSSFCellStyle.BORDER_THIN);
styleSub.setRightBorderColor(HSSFColor.BLACK.index);
styleSub.setBorderTop(HSSFCellStyle.BORDER_THIN);
styleSub.setTopBorderColor(HSSFColor.BLACK.index);
styleSub.setAlignment (HSSFCellStyle.ALIGN_CENTER);
styleSub.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);
styleSub.setWrapText(true);

//내용 스타일 설정
styleBody.setBorderBottom(HSSFCellStyle.BORDER_THIN);
styleBody.setBottomBorderColor(HSSFColor.GREY_50_PERCENT.index);
styleBody.setBorderLeft(HSSFCellStyle.BORDER_THIN);
styleBody.setLeftBorderColor(HSSFColor.GREY_50_PERCENT.index);
styleBody.setBorderRight(HSSFCellStyle.BORDER_THIN);
styleBody.setRightBorderColor(HSSFColor.GREY_50_PERCENT.index);
styleBody.setBorderTop(HSSFCellStyle.BORDER_THIN);
styleBody.setTopBorderColor(HSSFColor.GREY_50_PERCENT.index);
styleBody.setAlignment (HSSFCellStyle.ALIGN_CENTER);
styleBody.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);


//-------------------------------------------------------

//병합
objSheet.addMergedRegion(new Region(0,(short)0,0,(short)4));
objSheet.addMergedRegion(new Region(1,(short)0,1,(short)4));

//1행
objRow = objSheet.createRow((short)0);
objRow.setHeight ((short) 0x200);

objCell = objRow.createCell((short)0);
objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
objCell.setCellValue("공지사항");
objCell.setCellStyle(styleHd);

//2행
objRow = objSheet.createRow((short)1);
objRow.setHeight ((short) 0x90);

objCell = objRow.createCell((short)0);

//길이 설정
objSheet.setColumnWidth((short)0,(short)5000);
objSheet.setColumnWidth((short)1,(short)20000);
objSheet.setColumnWidth((short)2,(short)5000);
objSheet.setColumnWidth((short)3,(short)5000);
objSheet.setColumnWidth((short)4,(short)5000);

 

//-------------------------------------------
//3행
objRow = objSheet.createRow((short)2);
objRow.setHeight ((short) 0x150);

objCell = objRow.createCell((short)0);
objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
objCell.setCellValue("번호");
objCell.setCellStyle(styleSub);

objCell = objRow.createCell((short)1);
objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
objCell.setCellValue("제목");
objCell.setCellStyle(styleSub);

objCell = objRow.createCell((short)2);
objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
objCell.setCellValue("작성자");
objCell.setCellStyle(styleSub);

objCell = objRow.createCell((short)3);
objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
objCell.setCellValue("작성일");
objCell.setCellStyle(styleSub);

objCell = objRow.createCell((short)4);
objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
objCell.setCellValue("조회수");
objCell.setCellStyle(styleSub);

 


out.clear();

out = pageContext.pushBody();

fileOut = response.getOutputStream();
objWorkBook.write(fileOut);
fileOut.close();


 


%>


</body>
</html>

 

 

 

 

 

 

 

'프로그래밍 > JSP' 카테고리의 다른 글

jsp poi 엑셀 다운 예제  (0) 2013.11.26
jsp 개발환경 세팅 이클립스 톰켓 플러그인  (0) 2013.10.28
jsp poi 엑셀 다운받기  (0) 2013.09.04
jsp poi 폰트, 스타일 적용  (0) 2013.09.03
jsp poi 기본  (0) 2013.09.02
jsp 기본 문법 정리4  (0) 2012.03.12
Posted by -현's-

댓글을 달아 주세요

 

●poi

- java,jsp에서 데이터를 엑셀 등으로 추출, 또는 엑셀 등을 데이터로 저장할 때 사용한다.

 

- http://poi.apache.org/  에서 다운받은 파일을 압출 해제 후 WEB-INF 아래 lib에 넣는다.

 

- 워크북 생성->워크시트생성->로우생성->셀 생성->셀에 데이터 넣기 순서로 이루어진다.





hssf - .xls로 처리한다.

xssf - .xlsx로 처리한다.

sxssf - .xlsx로 처리한다. 위 두개는 데이터를 메모리에 담아서 한번에 처리하기 때문에 데이터가 많으면 메모리 부족현상이 나올수 있다. sxssf는 자동으로 메모리에 일정량의 데이터가 차면 메모리를 비워줘서 데이터가 많을 때 사용하면 좋다.

 




●poi 2점대 버전에서는 'HSSFCell.ENCODING_UTF_16'과 같이 한글 인코딩을 해야했지만

3점대 버전부터는 별도로 인코딩 코드를 삽입할 필요없다.


 

 

 

 

●엑셀로 추출하는 예제

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    <%@page import="org.apache.poi.hssf.usermodel.HSSFSheet,
     org.apache.poi.hssf.usermodel.HSSFWorkbook,
     org.apache.poi.hssf.usermodel.*,
     java.io.FileOutputStream,java.util.*,
    java.io.*,
    org.apache.poi.hssf.usermodel.*
     " %>
   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>엑셀 POI 테스트</title>
</head>
<body>

<%


HSSFWorkbook objWorkBook = new HSSFWorkbook();  //워크북 생성
HSSFSheet objSheet = objWorkBook.createSheet();       //워크시트 생성

 

HSSFRow objRow = objSheet.createRow((short)0);       //로우 생성(괄호안 숫자는 행 번호)
 HSSFCell objCell = objRow.createCell((short)0);           //셀 생성(괄호안 숫자는 열 번호)
 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);     //한글 인코딩
 objCell.setCellValue("연도");                                     //괄호안에 저장할 데이터를 넣는다.
 
  objCell = objRow.createCell((short)5);
 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
 objCell.setCellValue("내용");


objRow = objSheet.createRow((short)2);
  objCell = objRow.createCell((short)0);
 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
 objCell.setCellValue("연도55");
 
  objCell = objRow.createCell((short)5);
 objCell.setEncoding(HSSFCell.ENCODING_UTF_16);
 objCell.setCellValue("내용55");

 


FileOutputStream fs = new FileOutputStream("d:/test.xls");      //괄호안의 위치에 파일 생성한다.
objWorkBook.write(fs);
out.println("엑셀 생성 완료");

fs.close();

 

 


%>

 

 


</body>
</html>


 

'프로그래밍 > JSP' 카테고리의 다른 글

jsp poi 엑셀 다운받기  (0) 2013.09.04
jsp poi 폰트, 스타일 적용  (0) 2013.09.03
jsp poi 기본  (0) 2013.09.02
jsp 기본 문법 정리4  (0) 2012.03.12
jsp 기본 문법 정리3  (0) 2012.03.12
jsp 기본 문법 정리2  (0) 2012.03.11
Posted by -현's-

댓글을 달아 주세요

 

 

 

 

●기본격자

- row안에 span을 추가한다. span*의 합은 항상 행마다 12가 되야한다.(열안의 열인 경우 감싼 열 숫자만큼 되야한다)

 

 

 

 

 

 

 

 

 

 

 

 

 

●열 위치이동

- offset*을 사용한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

●열안의 열

- span* 안에 새로운 row,span*을 추가한다. 안의 열들을 함하면 감싸는 열의 숫자가 되야한다.

 

 

 

 

 

 

 

 

 

 

●유동 격자

- 열의 폭을 고정정인 값대신 비율을 사용한다.

 

- 유동 격자 열안의 열인 경우 안의 열의 합은 항상 12가 되야한다.

 

 

 

 

 

 

 

 

 

●유동레이아웃

- container-fluid를 사용한다.

 

 

 

 

 

 

Posted by -현's-

댓글을 달아 주세요

 

●부트스트랩

- css, 자바스크립트에 관한 프레임워크이다.

 

- http://maczniak.github.io/bootstrap/index.html 에 들어가서 부트스트랩 파일을 다운받아 사용한다.

 

- 부트스트랩은 html5 로 작성해야한다. html5는 문서 앞에 '<!DOCTYPE html>' 를 붙인다.

(html4에서는 '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' ,html5에서는 '<!DOCTYPE html>'가 끝)

 

ex)

 

 <!DOCTYPE html>

<html>

<head>

<body>

</boby>

</head>

</html>

 

 

 

 

 

●부트스트랩 기본 형식 

 ex)

 

 <!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>부트트랩 예제</title>
<link href="css/bootstrap.css" rel="stylesheet" media="screen">
</head>
<body>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>

부트트랩
</body>
</html>


 

 

 

 

 

 

 

 

 

 

 

 

Posted by -현's-

댓글을 달아 주세요