Excel 버튼이 있는데 화면에 보여주는 데이타를 가지고 있는 특정 노드에 접근하여 언제든 엑셀로 출력한다.
VB Script를 이용하는 부분을 나는 Java Script로 변환하여 보았다.
몇 가지를 고쳐야만 제대로 작동이 되는데
아마도 웹브라우저의 보안수준 관련 설정에서 ActiveX 컨트롤에 대한 사용을 허가해야 할지도 모른다.
그 소스는 다음과 같다.
<SCRIPT LANGUAGE="JavaScript">
<!--
/**
* 핵심 코딩: 정준호 (VB Script)
* 전 환: 박찬우 (Java Script)
*/
function printNuchaFamily() {
var nuchaFamily = new Array(
new Array("박찬우", "36", "02-1111-1111", "02-2222-2222", "011-5555-5555"),
new Array("박찬용", "31", "062-8888-8888", "062-9999-9999", "011-7777-7777")
);
var recordLen = nuchaFamily.length;
var colLen = nuchaFamily[0].length;
var objExcel; //Excel
var objWorkbook; //Excel Workbook
var objWorksheet; //Excel Workbook 의 Worksheet
objExcel = new ActiveXObject("excel.Application"); //excel 생성
objWorkbook = objExcel.Workbooks.Add; //' Excel 에 Workbook 추가
objExcel.DisplayAlerts = false; //Worksheet 삭제에 대한 경고 감추기
//WorkSheet 1개만 남겨두고 모두 제거 (기본적으로 3개 생김)
while (objWorkbook.Worksheets.Count > 1) {
objWorksheet = objWorkbook.Worksheets.Item(objWorkbook.Worksheets.Count);
objWorksheet.Delete;
}
objWorksheet = objWorkbook.ActiveSheet; //sheet 의 활성화
objWorksheet.Name = "NUCHA_SHEET_1"; //sheet 의 이름 설정
objWorksheet.cells(2,3) = "제목: 누차 가족 정보"; //2행 3열에 제목 표시
//타이틀
titleRow1 = 5
objWorksheet.cells(5, 1) = "이름";
objWorksheet.Range("A5:A6").merge(); //A열 5행과 6행의 셀 병합
objWorksheet.cells(5, 2) = "나이";
objWorksheet.Range("B5:B6").merge();
objWorksheet.Range("C5:E5").merge(); //5행의 C열부터 E열까지 셀 병합
objWorksheet.cells(5, 3) = "전화"; objWorksheet.cells(5, 3).columnWidth = 20;
objWorksheet.cells(6, 3) = "집"
objWorksheet.cells(6, 4) = "직장";
objWorksheet.cells(6, 5) = "핸드폰";
//만약 특정 셀에 대한 설정이 필요하다면 컬럼에 대하여 펼친 꼴을 사용하기 바람.
var row = 7;
var col = 1;
for (var i = 0; i < recordLen; i++) {
var eachRecord = nuchaFamily[i];
for (var j=0; j <= colLen; j++) {
objWorksheet.cells(row + i, col + j) = eachRecord[j];
}
}
objExcel.Visible = true
}
//-->
</SCRIPT>
VB Script를 이용하는 부분을 나는 Java Script로 변환하여 보았다.
몇 가지를 고쳐야만 제대로 작동이 되는데
아마도 웹브라우저의 보안수준 관련 설정에서 ActiveX 컨트롤에 대한 사용을 허가해야 할지도 모른다.
그 소스는 다음과 같다.
<SCRIPT LANGUAGE="JavaScript">
<!--
/**
* 핵심 코딩: 정준호 (VB Script)
* 전 환: 박찬우 (Java Script)
*/
function printNuchaFamily() {
var nuchaFamily = new Array(
new Array("박찬우", "36", "02-1111-1111", "02-2222-2222", "011-5555-5555"),
new Array("박찬용", "31", "062-8888-8888", "062-9999-9999", "011-7777-7777")
);
var recordLen = nuchaFamily.length;
var colLen = nuchaFamily[0].length;
var objExcel; //Excel
var objWorkbook; //Excel Workbook
var objWorksheet; //Excel Workbook 의 Worksheet
objExcel = new ActiveXObject("excel.Application"); //excel 생성
objWorkbook = objExcel.Workbooks.Add; //' Excel 에 Workbook 추가
objExcel.DisplayAlerts = false; //Worksheet 삭제에 대한 경고 감추기
//WorkSheet 1개만 남겨두고 모두 제거 (기본적으로 3개 생김)
while (objWorkbook.Worksheets.Count > 1) {
objWorksheet = objWorkbook.Worksheets.Item(objWorkbook.Worksheets.Count);
objWorksheet.Delete;
}
objWorksheet = objWorkbook.ActiveSheet; //sheet 의 활성화
objWorksheet.Name = "NUCHA_SHEET_1"; //sheet 의 이름 설정
objWorksheet.cells(2,3) = "제목: 누차 가족 정보"; //2행 3열에 제목 표시
//타이틀
titleRow1 = 5
objWorksheet.cells(5, 1) = "이름";
objWorksheet.Range("A5:A6").merge(); //A열 5행과 6행의 셀 병합
objWorksheet.cells(5, 2) = "나이";
objWorksheet.Range("B5:B6").merge();
objWorksheet.Range("C5:E5").merge(); //5행의 C열부터 E열까지 셀 병합
objWorksheet.cells(5, 3) = "전화"; objWorksheet.cells(5, 3).columnWidth = 20;
objWorksheet.cells(6, 3) = "집"
objWorksheet.cells(6, 4) = "직장";
objWorksheet.cells(6, 5) = "핸드폰";
//만약 특정 셀에 대한 설정이 필요하다면 컬럼에 대하여 펼친 꼴을 사용하기 바람.
var row = 7;
var col = 1;
for (var i = 0; i < recordLen; i++) {
var eachRecord = nuchaFamily[i];
for (var j=0; j <= colLen; j++) {
objWorksheet.cells(row + i, col + j) = eachRecord[j];
}
}
objExcel.Visible = true
}
//-->
</SCRIPT>
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
18 | Applet 에서 JavaScript 를 호출 | 박상현 | 2003.10.13 | 2414 |
17 | 색상표 | 박상현 | 2003.10.10 | 1771 |
16 | [javascript]textarea의 내용을 클립보드에 담아 처리하기 | 박상현 | 2003.10.09 | 3679 |
15 | [제로보드] 일반페이지 인증하기 | 박상현 | 2003.10.09 | 1967 |
14 | 시간안에 응답하지 않는함수는 에러(혹은 exception)처리 | 박상현 | 2003.10.08 | 2046 |
13 | 자바스크립트사용시 주의점 | 운영자 | 2003.10.06 | 1899 |
» | excel로 자료 출력 | 운영자 | 2003.10.06 | 2387 |
11 | batch 작업 | 박상현 | 2002.02.13 | 2020 |
10 | 수정된 StringTokenizer | 박상현 | 2001.12.17 | 2579 |
9 | java에서 system의 property확인 jsp파일 | 박상현 | 2001.10.27 | 2358 |
8 | 프리페어스테이트먼트에 ? 표 자리에 값을 셋팅후 만들어진 SQL 문을 보는 유틸 | 운영자 | 2003.09.18 | 3391 |
7 | RAS암호 시스템의 구현 | 박상현 | 2001.10.16 | 3232 |
6 | JCE정보 보는 소스 | 박상현 | 2001.10.16 | 2399 |
5 | 테두리및 가로줄, 세로줄이 1px인 테이블 만들기 | 운영자 | 2003.10.01 | 2531 |
4 | table 외곽에 테두리만 1pixel로 만들기 | 운영자 | 2003.10.01 | 2249 |
3 | BB설명 | 운영자 | 2003.09.26 | 2159 |
2 | 창닫기 전에 물어보기 | 운영자 | 2003.09.26 | 2574 |
1 | popup창 띄우는 4가지 방법 | 운영자 | 2003.09.24 | 4004 |