홈 · 개발 참고자료

개발 참고자료

Excel ole 개체 속성 지정 및 매소드 사용 예시

작성자
왕희복
작성일
2015-04-06
조회
13300
분류
파워빌더
[출처] http://hi.baidu.com/cuifenghui/blog/item/0f1483d6bd264a2b07088b9a.html




powerbuilder excel ole 개체 - 2008-03-20 21:13




①파일


Ole_object.Workbooks.add // 새 Excel 파일 만들기
Ole_object.Workbooks.Open("c:\FileName.xls") // 기존 엑셀 파일 열기
Ole_object.ActiveWorkBook.Sheets("SheetName").Select // 워크시트에서 시트 선택
Ole_object.Application.Run("MacroName") // 매크로 실행
Ole_object.Application.Visible=TRUE // Excel문서 보이기
Ole_object.Application.ScreenUpdating=true // ScreenUpdating 속성




②서식
Ole_object.ActiveSheet.Columns("A:U").AutoFit // 자동으로 열 너비 조정
Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75 // 열 너비
Ole_object.ActiveSheet.Rows("1:100").RowHeight=12 // 행 높이
Ole_object.Application.StandardFont="ArialNarrow" // 글꼴 지정
Ole_object.Application.StandardFontSize="8" // 글꼴 크기 설정
Ole_object.ActiveSheet.Font.Size="8" // 글꼴 크기 설정
Ole_object.ActiveSheet.Font.Bold=True // 굵게
Ole_object.ActiveSheet.Font.Italic=True // 기울임꼴
Ole_object.ActiveSheet.Font.Underline=True // 밑줄 표시
Ole_object.ActiveSheet.Font.StrikeThrough=True // 취소선 표시
Ole_object.ActiveSheet.HorizontalAlignment=3 // 가로 정렬 4=오른쪽, 3=중앙, 2=왼쪽
Ole_object.ActiveSheet.VerticalAlignment=2 // 세로 정렬 3=하단, 2=중앙, 1=상단
Ole_object.ActiveSheet.cells(2,1).font.name=’굴림’ // 셀 글꼴 지정
Ole_object.ActiveSheet.cells(2,1).font.size=25 // 셀 글꼴크기설정




③범위지정작업
Ole_object.ActiveSheet.Range("A1:Z10").Property=value // 지정 영역 속성 값을 지정
Ole_object.ActiveSheet.Range("A1:Z10").Merge // 셀 병합
Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False // 줄바꿈 금지
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val


//b_type 값 : 1=왼쪽, 2=오른쪽, 3=위쪽, 4=아래쪽, 5=왼쪽/위쪽 경사 6=오른쪽/위쪽 경사 (이상 셀단위)
7=왼쪽, 8=위쪽, 9=아래쪽, 10=오른쪽, 11=내부 세로선, 12=내부 가로선 (이상 범위지정 시)
// i_val : 0=경계없음 및 1,2,3. . . 굵어짐...
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1


// 1- 굵은선, 2 - 가는선, 4 - 점선, 9 - 얇은 이중 실선.






④ 할당
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“이름”
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01”
Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“연령”
Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])”


--------------------------------------------------------------------------------



< 파워빌더 스크립트 예시 >


ls_filename = "C:\alt_report\wf_alt_report.xls"
if FileExists(ls_filename) then FileDelete(ls_filename)
OleObject Loo_Excel
Loo_Excel=create oleobject
if Loo_Excel.ConnectToNewObject("Excel.Application") <> 0 then
messagebox('알림','엑셀이 설치되어있지 않아 실행할 수 없습니다!')
return
end if
Loo_Excel.Application.Workbooks.Add()
Loo_Excel.Application.Workbooks(1).worksheets(1)
Loo_Excel.Application.Visible = True
Loo_Excel.Application.ScreenUpdating = false


//'헤더처리....'
Loo_Excel.Range("A1:AB1").Select
Loo_Excel.Selection.MergeCells = True
Loo_Excel.Selection.HorizontalAlignment = 3
Loo_Excel.Selection.VerticalAlignment = 3
Loo_Excel.Selection.Font.Bold = True
Loo_Excel.Selection.Font.Size = 14
Loo_Excel.Selection.RowHeight = 28.50
Loo_Excel.ActiveCell.FormulaR1C1 = dw_3.describe("ls_title"+".text")
///헤더작성
Loo_Excel.application.workbooks(1).worksheets(1).cells(3, 1 ).value = "번호"
// dw_2.describe("po_no"+".name"+"_t.text")
Loo_Excel.application.workbooks(1).worksheets(1).cells(3, 2 ).value = "고객스타일"
Loo_Excel.application.workbooks(1).worksheets(1).cells(3, 3 ).value = dw_2.describe("cust_nam_t.text")
//내용
for i=1 to dw_2.rowcount()
Loo_Excel.application.workbooks(1).worksheets(1).cells(3+i, 1).value = string( dw_2.object.po_no[i] )
next


Loo_Excel.application.ActiveWorkbook.SaveAs(ls_filename)
Loo_Excel.Application.ScreenUpdating = True
Loo_Excel.DisconnectObject() [출처] Excel ole 개체 속성 지정 및 매소드 사용 예시 (파워빌더 커뮤니티(PBExpertClub)) |작성자 오와조