Simple is best

Posted by 미쉬마르
http://www.springbyexample.org/

멋진곳이다.. 예제들이 왕창?
Posted by 미쉬마르

 public void paramHeader(HttpServletRequest request) {
        Enumeration paramNames = request.getParameterNames();
        while(paramNames.hasMoreElements()) {
            String paramName = (String)paramNames.nextElement();


            System.out.println("Header : " + paramName);
       
            String[] paramValues = request.getParameterValues(paramName);
       
                if (paramValues.length == 1) {
                    String paramValue = paramValues[0];
                    if (paramValue.length() == 0)
                        System.out.println("Value : No Value");
                    else
                        System.out.println(paramValue);
                } else {
                    for(int i=0; i<paramValues.length; i++) {
                        System.out.println("Value : " + paramValues[i]);
                    }
                }
            }
        }

Posted by 미쉬마르
Posted by 미쉬마르

public static void charSet(String str_kr) throws UnsupportedEncodingException{
        String charset[] = {"euc-kr", "ksc5601", "iso-8859-1", "8859_1", "ascii", "UTF-8"};
           
        for(int i=0; i<charset.length ; i++){
            for(int j=0 ; j<charset.length ; j++){
                if(i==j) continue;

      System.out.println(charset[i]+" : "+charset[j]+" :"+new String(str_kr.getBytes(charset[i]),charset[j]));
            }
        }
    }

 

Posted by 미쉬마르

 public void excelTest(HttpServletRequest req, HttpServletResponse res) {
   

########################### Query #####################################
  StringBuffer sb = new StringBuffer();
  sb.append("SELECT                \n");
  sb.append("  (SELECT COUNT(*) AS Cnt FROM CRM_GARDEN) as CNT,   \n");
  sb.append("   SEQ,      \n");
  sb.append("  PLACE,            \n");
  sb.append("  CAR_NAME,           \n");
  sb.append("  CAR_NUM,           \n");
  sb.append("  CAR_YEAR,           \n");

  sb.append("  CAR_COLOR,           \n");
  sb.append("  CAR_PRICE,           \n");
  sb.append("  CAR_BUY_DATE,         \n");
  sb.append("  CAR_SELL_DATE,        \n");
  sb.append("  CREATE_DATE,          \n");

  sb.append("  CAR_OPTION,          \n");
  sb.append("  CAR_ACCIDENT,        \n");
  sb.append("  CAR_NOTE,           \n");
  sb.append("     CAR_DEALER_NAME,   \n");
  sb.append("     KM       \n");

  sb.append("FROM                  \n");
  sb.append("  CRM_GARDEN     \n");
  sb.append("WHERE 1=1     \n");
 
  Connection conn = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
   
  String paramYear = "";
  String paramMonth = "";
  String paramYm = "";
 
  paramYear = req.getParameter("paramYear");
  paramMonth = req.getParameter("paramMonth");
 
  UdpLogger.print("PARAM == > " + paramYear + " >>> " + paramMonth);
 
  if (paramYear != null && !paramYear.equals("*") && paramMonth != null && !paramMonth.equals("*")) {
   paramYm = paramYear + "-" + paramMonth;
  }
 
  try {
   conn = ConnectionManager.getConnection();
   
   
   if (paramYm != null && !paramYm.equals("")) {
    sb.append("   AND DATE(CAR_SELL_DATE) between ? and ?  \n");
   }
   
 
   pstmt = conn.prepareStatement(sb.toString());
   
   if (paramYm != null && !paramYm.equals("")) {
    pstmt.setString(1, paramYm + "-01");
    pstmt.setString(2, paramYm + "-31");
   }
   
   
   rs = pstmt.executeQuery();
   
   UdpLogger.print("###################### \n" + sb.toString());

  ######################## EXCEL ###################################

   // Excel
   
   // WritableWorkbook workbook = Workbook.createWorkbook(new
   // File("d:/myExcelFile.xls")); // 엑셀
   WritableWorkbook workbook =  Workbook.createWorkbook(res.getOutputStream());
 
   WritableSheet sheet = workbook.createSheet("Sheet1", 0);
 

  ############ CELL FORMAT 모양과 색을 지정 선 모양도 지정함 ############

   jxl.write.WritableCellFormat format= new WritableCellFormat();
   jxl.write.WritableCellFormat format0= new WritableCellFormat();
   jxl.write.WritableCellFormat format1= new WritableCellFormat();
   jxl.write.WritableCellFormat format2= new WritableCellFormat();
   
   format.setBackground(jxl.format.Colour.IVORY );
   format.setBorder(jxl.format.Border.LEFT,jxl.format.BorderLineStyle.THIN );
   format.setBorder(jxl.format.Border.RIGHT,jxl.format.BorderLineStyle.THIN );
   format.setBorder(jxl.format.Border.BOTTOM,jxl.format.BorderLineStyle.THIN );
   format.setBorder(jxl.format.Border.TOP,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.DOTTED );
   format0.setBorder(jxl.format.Border.LEFT,jxl.format.BorderLineStyle.THIN );
   format0.setBorder(jxl.format.Border.RIGHT,jxl.format.BorderLineStyle.THIN );
   format0.setBorder(jxl.format.Border.BOTTOM,jxl.format.BorderLineStyle.THIN );
   format0.setBorder(jxl.format.Border.TOP,jxl.format.BorderLineStyle.THIN );
   format0.setAlignment(jxl.format.Alignment.CENTRE);
 

   
   format2.setBackground(jxl.format.Colour.WHITE );
   //format2.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN );
   format2.setBorder(jxl.format.Border.LEFT,jxl.format.BorderLineStyle.THIN );
   format2.setBorder(jxl.format.Border.RIGHT,jxl.format.BorderLineStyle.THIN );
   format2.setBorder(jxl.format.Border.BOTTOM,jxl.format.BorderLineStyle.THIN );
   format2.setBorder(jxl.format.Border.TOP,jxl.format.BorderLineStyle.THIN );
   format2.setAlignment(jxl.format.Alignment.LEFT);
   
   sheet.setColumnView(0,10);
 
   jxl.write.Label label =null;
   jxl.write.Blank blank=null;
   
   /* Excel Header */

################################## Excel Header ########################

   
   label = new jxl.write.Label(0,0,"차량명",format);
   sheet.setColumnView(0,40);
   sheet.addCell(label);
   label = new jxl.write.Label(1,0,"차번호",format);
   sheet.setColumnView(1,12);
   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);
   label = new jxl.write.Label(4,0,"주행거리",format);
   sheet.addCell(label);

   label = new jxl.write.Label(5,0,"입고일",format);
   sheet.setColumnView(5,12);
   sheet.addCell(label);
   
   label = new jxl.write.Label(6,0,"출고일",format);
   sheet.setColumnView(6,12);
   sheet.addCell(label);
   label = new jxl.write.Label(7,0,"판매금액",format);
   sheet.addCell(label);
   label = new jxl.write.Label(8,0,"작성일",format);
   sheet.setColumnView(8,12);
   sheet.addCell(label);
   label = new jxl.write.Label(9,0,"매장",format);
   sheet.addCell(label);
   
   label = new jxl.write.Label(0,1,"옵션",format);
   sheet.addCell(label);
   sheet.mergeCells(0,1,9,1);
   label = new jxl.write.Label(0,2,"사고",format);
   sheet.addCell(label);
   sheet.mergeCells(0,2,9,1);
   label = new jxl.write.Label(0,3,"비고",format);
   sheet.addCell(label);
   sheet.mergeCells(0,3,9,1);
   
// blank = new jxl.write.Blank(4,0,format0);
// sheet.addCell(blank );
   
   int i =0;
   int last = 0;
   while(rs.next()) {
    //bean = new DataClass();
   
    i = rs.getRow() * 4;
    // 위에 8칸 (행, 열, 데이타, 포멧)
     for (int j=0; j <=9; j++) {
      label = new jxl.write.Label(j++,i,rs.getString("CAR_NAME"),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("CAR_NUM"),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("CAR_YEAR"),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("CAR_COLOR"),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("KM"),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("CAR_BUY_DATE").substring(0,10),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("CAR_SELL_DATE").substring(0,10),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("CAR_PRICE"),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("CREATE_DATE").substring(0,10),format0);
      sheet.addCell(label);
      label = new jxl.write.Label(j++,i,rs.getString("PLACE"),format0);
      sheet.addCell(label);
     }
    // 한칸씩 3줄
     label = new jxl.write.Label(0,i+1,rs.getString("CAR_OPTION"),format2);
     sheet.mergeCells(0,i+1,9,1);
     sheet.addCell(label);
       
     
     label = new jxl.write.Label(0,i+2,rs.getString("CAR_ACCIDENT"),format2);
     sheet.mergeCells(0,i+2,9,1);
     sheet.addCell(label);

     
     label = new jxl.write.Label(0,i+3,rs.getString("CAR_NOTE"),format2);
     sheet.mergeCells(0,i+3,9,1);
     sheet.addCell(label);
     
     last = i+4;
   }

   format1.setBorder(jxl.format.Border.TOP,jxl.format.BorderLineStyle.DOUBLE);

   if (i > 0) {
    for (int k=0; k <=9; k++) {
     blank = new jxl.write.Blank(k,last,format1);
     sheet.addCell(blank);
    }
   } else {
    label = new jxl.write.Label(0,i+4,"데이터가 없습니다",format0);
    sheet.mergeCells(0,i+4,9,2);
    sheet.addCell(label);
   
    for (int k=0; k <=9; k++) {
     blank = new jxl.write.Blank(k,i+5,format1);
     sheet.addCell(blank);
    }
   }
   
   
//    
//    for(int h=1;h<51;h++) { // 행
//     for(int i=0;i<30;i++) { // 열
//      label = new jxl.write.Label(i, h, "("+i+","+h+")",format0);
//      
//     }
//    }


  ######################################### 파일 다운로드 설정

   /* 엑셀파일 다운로드 설정 */
   res.setContentType("text/html; charset=euc-kr");
   res.setHeader("Content-Transfer-Encoding", "7bit");
   
   String fileName = "";
   
   if (paramYm.equals("")) {
    fileName = "전체 통계.xls";
   } else {
    fileName = paramYm +"월 통계.xls";
   }
   
   if (req.getHeader("User-Agent").indexOf("MSIE 5.5") > -1) {
    res.setHeader("Content-Disposition","filename=" + java.net.URLEncoder.encode(fileName, "euc-kr") + ";");
   } else {
    res.setHeader("Content-Disposition","attachment; filename=" + new String(fileName.getBytes("EUC-KR"), "8859_1") + ";");
   }
     
   // res.setHeader("Content-Length", "" +
   // excelBook.toString().length());
   
   res.setHeader("Content-Length", "");
   
   /* 엑셀파일 다운로드 설정 */
   workbook.write();
   workbook.close();

  } catch (Exception ex){
   ex.printStackTrace();
  } finally {
   clearConnection(pstmt, rs, conn);
  }
 }
 
  private void clearConnection(PreparedStatement pstmt, ResultSet rs, Connection conn) {
   try {
    if (pstmt != null) {
     pstmt.close();
    }
 
    if (rs != null) {
     rs.close();
    }
 
    if (conn != null) {
     ConnectionManager.release(conn);
    }
   } catch (Exception ex) {
   
   }
 }

Posted by 미쉬마르