반응형

후암...


Shell 과 같은 형태로 BAT를 만드는 것은 왜케 어렵나 -_-


참조 사이트 : http://mwultong.blogspot.com/2007/05/batch-file-infinity-loop.html


우선 local PC와 원격 서버와의 연결 정보(대용량 엑셀 다운로드 시)


확인하기 위해


주기적인 findstr 과 netstat를 통해 정보를 추출할 필요가 있다!


그런데.. 손가락 아퍼...


그래서 1초  단위로 Ctrl +  C 누를 때까지 무한 반복하는 BAT 파일임...



@echo off
setlocal

:LOOP
echo 종료할려면 Ctrl + C를 누르면 강제 종료함.

::::::::::::::::::::::::::::::::::::::::
:: 이 부분이 없으면 영원한 무한루프가 됨
set /a myStopper+=1
if %myStopper% GEQ 10 goto QUIT
::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::루프구간
:: 총 1초 대기
for /L %%i in (1,-1,1) do (ping 127.0.0.1 -n 2 > nul | echo "============================================================================")

echo =) 접속 PC
echo %COMPUTERNAME%
echo =) 현재 날짜는
date /t
echo =) 현재 시각
time /t


netstat -an | findstr 125.160.248.111

goto LOOP

:QUIT


반응형

'OS' 카테고리의 다른 글

net 명령어  (0) 2014.11.13
폴더 계정별 권한 부여하기  (0) 2014.11.13
CMD 창 모양 크기 색 변경하기  (2) 2013.01.10
반응형

엑셀을 처리하는 방법

1. 일반적인 방법

   - DB <---> WAS (JAVA) 파일 생성 <---> JSP 다운로드

   - 문제점 : WAS에 메모리에서 엑셀 파일을 만들기 때문에 메모리 할당 공간이 부족할 때는 OOM(Out Of Memory)으로

                 힙 덤프를 사정없이 발사 !

 

2. 대용량 엑셀 처리 방법

    - 엑셀을 생성할 때 XML 방식으로 생성함

      http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats#Excel_XML_Spreadsheet_example

    - outputStream으로 행별로 Text를 써야 메모리에 한꺼번에 올리지 않아 WAS가 OOM를 뿜으면서 죽지 않음.

       ※ 첨부된 자바파일을 참고함

    - 대용량이므로 속도에 신경 쓰지 않을 수 없다 !!!

      그러므로 Fetch Size(JAVA에서 Oracle를 사용할 때 가지고오는 row의 양...)을 조절하여 성능향샹의 효과 까지 볼수 있다.

 

후후... 재미있는건... 난 자바를 잘 모른다...

개발자들도 원인을 잘 찾지 않는다...

귀찮은 걸까... 해결하고 싶지 않을껄까...

난 인프라 담당인데 하하하 -_-

 

BigGridDemo.java

반응형
반응형

레지스트리 변경을 통해 해결

1. 시작 -> 실행 -> regedit

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments\ScanWidthAntiVirus

의 값을 1로 변경 (첨부파일 다운로드가 안될경우 3으로 되어있음)

2. 시작 -> 실행 -> regedit (1번의 경우 대부분 해결되지만 혹 안될경우)

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments\ScanWithAntiVirus

값을 1로 변경함

※ office 제품군의 경우 다운로드는 되나 파일이 열리지 않는 경우에는(2007 기준)

excel 실행 -> 왼쪽 상단의 윈도우 마크의 동그라미 클릭 -> Excel 옵션 -> 고급탭 -> 일반 -> DDE(동적 데이터 교환)를 사용하는 다른 응용 프로그램을 무시(O) >>> 체크 해제함. -> 확인



반응형
반응형

여러가지 방법이 있겠지만

 

엑셀에서 HTML 문서를 읽을 수 있다는 점에 착안해서 구현한 방법입니다.

 

HTML로 테이블을 하나 만들어서 출력해버리면 엑셀에서 그대로 뿌려주는게 가능합니다.

 

1. HTML 헤더부 생성

2. 본문에 테이블 및 데이터 출력

3. HTML 푸터부 생성

4. spool할때 spool 파일의 확장자를 xls로 출력

 

PS. 데이터 항목에 엑셀 함수를 뿌리면 엑셀에서 불러왔을때 해당 함수가 수행됩니다.

 

 

 

 

UTL_FILE.PUT_LINE(v_FileHandle, '<html>');
UTL_FILE.PUT_LINE(v_FileHandle, '<head>');
UTL_FILE.PUT_LINE(v_FileHandle, '<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">');
UTL_FILE.PUT_LINE(v_FileHandle, '<meta name="generator" content="SQL*Plus 10.2.0">');
UTL_FILE.PUT_LINE(v_FileHandle, '<style type=''text/css''> body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-serif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; background:#cccc99; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; border-bottom:1px solid #cccc99; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} h2 {font:bold 10pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; margin-top:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#663300; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</style><title>SQL*Plus Report</title>');
UTL_FILE.PUT_LINE(v_FileHandle, '</head>');
UTL_FILE.PUT_LINE(v_FileHandle, '<body>');
UTL_FILE.PUT_LINE(v_FileHandle, '<p>');
UTL_FILE.PUT_LINE(v_FileHandle, '<table border=''1'' width=''90%'' align=''center'' summary=''Script output''>');

 

 

<위와 같이 HTML 헤더부를 생성>
 
 
 
 FOR data_rec IN GET_DATA_01 LOOP
UTL_FILE.PUT_LINE(v_FileHandle, '<tr>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td>');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.TX_DATE);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.TOT);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.CARD);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.CAPI);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.DUP);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.NODATA);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.YESDATA);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
        UTL_FILE.PUT_LINE(v_FileHandle,data_rec.CORRATE);
UTL_FILE.PUT_LINE(v_FileHandle, '</td>');
UTL_FILE.PUT_LINE(v_FileHandle, '<td align="right">');
v_Rows := v_Rows + 1;
    END LOOP;
 
<커서를 사용한 데이터 출력부>
 
 
 
UTL_FILE.PUT_LINE(v_FileHandle, '</table>');
UTL_FILE.PUT_LINE(v_FileHandle, '<p>');
UTL_FILE.PUT_LINE(v_FileHandle, '</body>');
UTL_FILE.PUT_LINE(v_FileHandle, '</html>');
 
<HTML 문서의 푸터부를 구현>
반응형
반응형

웹페이지 상의 문서를 엑셀이나, 파워포인트, 위드 문서로 변환해 줘야 되는 경우
만약에 엑셀 파일로 변환을 하고 싶으시면

PHP는
<?

header(\"Content-Type: application/vnd.ms-excel\");

?>

JSP는

<%@ page contentType="application/vnd.ms-excel; name='My_Excel'" %>
<%
response.setHeader("Content-Disposition", "inline; filename=myfile.xls");
response.setHeader("Content-Descript-xion", "JSP Generated Data");
%>

저 부분을 <HTML> 태그 앞에 넣으면 끝나지요.
저 페이지가 호출이 되면 오피스가 깔려있는 사용자들은 저장할것인지 그냥 열것인지를 물어보구여, 안깔려 있는 사용자들은 파일을 다운받을수 있게 되지요.


그럼 워드 파일은
<?
header(\"Content-Type: application/msword\");
?>

파워포인트 역시 같은 방법으로
<?
header(\"Content-Type: application/vnd.ms-powerpoint\");
?>


그럼 마지막으로 ASP에서는
<%
Response.Buffer = TRUE
Response.ContentType = \"application/vnd.ms-excel\"
%>


다음은 header 내용을 변경해서 excel로 바꾸어 주는 구문입니다.

* excel.php

<?php

header(\"Content-type: application/vnd.ms-excel\");

header(\"Content-Disposition: attachment; filename=test.xls\");

header(\"Content-Descript-xion: PHP4 Generated Data\");

?>

<html>

<body>

<table>

<tr>

<td>테스트1</td>

<td>테스트1</td>

<td>테스트1</td>

<td>테스트1</td>

</tr>

<tr>

<td>테스트2</td>

<td>테스트2</td>

<td>테스트2</td>

<td>테스트2</td>

</tr>

</table>

</body>

</html>



실행시켜보세요. 어떻게 되죠? test.xls 이름으로 excel 화일이 다운로드 되죠.

혹 DB내용을 excel형태로 출력해야될 때 유용할거 같습니다








[JSP] 쿼리결과를 엑셀로 추출
<%@ page contentType="application/vnd.ms-excel;charset=euc-kr" import="java.sql.*,java.text.*"%><%

response.setHeader("Content-Disposition", "inline; filename=myfile.xls"); // 파일 이름 지정
response.setHeader("Content-Descript-xion", "JSP Generated Data");

Connection con = null ;
Statement st = null ;
ResultSet rs = null ;


try{
con = ## 컨넥션 얻기 ##
st = con.createStatement();
rs = st.executeQuery("## 쿼리 ##");
ResultSetMetaData rsmd = rs.getMetaData();

%><html>
<body bgcolor=white>
<table border=1>
<tr bgcolor="#CACACA">
<% for ( int i = 1 ; i <= rsmd.getColumnCount() ; i ++ ) { %>

<th><%=rsmd.getColumnName(i)%></th>

<% } %>
</tr>
<%
while(rs.next()) {
%>
<tr>
<% for ( int i = 1 ; i <= rsmd.getColumnCount() ; i ++ ) { %>

<td><%

if ( rs.getString(rsmd.getColumnName(i)) == null ) {
out.print("");
} else {

out.print(rs.getString(rsmd.getColumnName(i)));
}

%></td>

<% } %>
</tr>
<% } %>
</table>
</body>
</html>
<%


} catch (Exception eee) {}
finally {
if ( rs != null ) rs.close();
if ( st != null ) st.close();
if (con != null ) con.close;
}
%>
반응형

'Language > JSP' 카테고리의 다른 글

JSP 2.0 프로그래밍 소스  (0) 2011.10.12
로딩된 CLASS 정보 보기  (0) 2011.03.10
JSP WEB shell  (0) 2010.05.10
JSP 파일 읽기  (0) 2009.12.03

+ Recent posts