'프로그래밍/Java'에 해당되는 글 6건
- 2009.12.30 JSP에서 서버명령어 실행
- 2009.11.12 Springframework Example
- 2009.02.13 HttpServletRequest 의 파라미터 내용 보기
- 2009.01.16 [ URL ] DWR (Direct Web Remoting)
- 2008.12.17 Charset 확인하기
- 2008.09.18 Java 엑셀내리기 (DB와 셀합치기)
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]);
}
}
}
}
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]));
}
}
}
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) {
}
}