Simple is best

########### JAVA ExcelSample #######################

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import base.util.UdpLogger;

import jxl.Workbook;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExcelSample extends HttpServlet {
 public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException  {
  excelTest(req, res);
 }
 
 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException  {
  excelTest(req, res);
 }
 
 /**
  * Java Excel Api 월별 장부 엑셀로 출력하기
  */

 public void excelTest(HttpServletRequest req, HttpServletResponse res) {
  try {
   UdpLogger.print("TEST PARAMS ==> " + req.getParameter("params"));  
   
   
   //WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/myExcelFile.xls")); // 엑셀
   WritableWorkbook workbook =  Workbook.createWorkbook(res.getOutputStream());
 
   WritableSheet sheet = workbook.createSheet("Sheet1", 0);
 
   jxl.write.WritableCellFormat format= new WritableCellFormat();
   jxl.write.WritableCellFormat format0= new WritableCellFormat();
 
   format.setBackground(jxl.format.Colour.GRAY_25 );
   format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN );
   format.setAlignment(jxl.format.Alignment.CENTRE);
 
   format0.setBackground(jxl.format.Colour.WHITE );
   format0.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN );
   format0.setAlignment(jxl.format.Alignment.CENTRE);
   sheet.setColumnView(0,8);
 
   jxl.write.Label label =null;
   jxl.write.Blank blank=null;
 
   label = new jxl.write.Label(0,0,"결재란",format);
   sheet.addCell(label);
   label = new jxl.write.Label(1,0,"테스트",format);
   sheet.addCell(label);
   label = new jxl.write.Label(2,0,"결재일",format);
   sheet.addCell(label);
   label = new jxl.write.Label(3,0,"테스트",format);
   sheet.addCell(label);
   blank = new jxl.write.Blank(4,0,format0);
   sheet.addCell(blank );

   for(int h=1;h<51;h++) {
    for(int i=0;i<10;i++) {
     label = new jxl.write.Label(i, h, "("+i+","+h+")",format0);
     sheet.addCell(label);
    }
   }
       /* 엑셀파일 다운로드 설정 */
   res.setContentType("text/html; charset=euc-kr");
   res.setHeader("Content-Transfer-Encoding", "7bit");
   
   if (req.getHeader("User-Agent").indexOf("MSIE 5.5") > -1) {
    res.setHeader("Content-Disposition","filename=" + java.net.URLEncoder.encode("requestList.xls", "euc-kr") + ";");
   } else {
    res.setHeader("Content-Disposition","attachment; filename=" + new String("requestList.xls".getBytes("EUC-KR"), "8859_1") + ";");
   }
     
   // res.setHeader("Content-Length", "" +
   // excelBook.toString().length());
   
   res.setHeader("Content-Length", "");
   
   /* 엑셀파일 다운로드 설정 */
   workbook.write();
   workbook.close();

  } catch(Exception e) {
   System.out.println(e);
  }
 }
}


########### Web.xml #######################

 <servlet>
  <servlet-name>MangeExcelServlet</servlet-name> <-- 서블릿 명
  <servlet-class>management.crm.garden.MangeExcelServlet</servlet-class> <-- 서블릿 경로
 </servlet>


 <servlet-mapping>
  <servlet-name>MangeExcelServlet</servlet-name>
  <url-pattern>/excel</url-pattern> <-- Url partten
 </servlet-mapping>


######  Flex 호출 ########################

ExternalInterface.call("excelTest","06"); <-- 어플리케이션 html 또는 jsp안에 excelTest Java Script


<form name="fm"> <-- 폼
    <input type="hidden" name="params" value="">
</form>

<iframe name="excel_frame" width="0" height="0"> <-- iframe 창을 안띄우기 위한것

Posted by 미쉬마르