엑셀관련함수들... 관련함수 모아둔곳
데이터윈도우의 내용을 엑셀로 저장할때, 엑셀에서 첫줄에 타이틀(컬럼이름)이 나오잖아요.
이거를 없애고 내용만 저장할 수 는 없을까요?
ole.ActiveWorkbook.Sheets("sheet1").Cells(1, 1).Delete 말씀 하시는건지
dw_equipmt.SaveAs("gr_computers", "G:\INVENTORY\SALES.XLS", excel5!, true)
true는 헤드저장 false 해드없이 (help)
/********************************************************************************/
int value
string docname, named
integer li_i
docname = "c:\" + title
named = title+".xls"
if FileExists(docname) then filedelete(docname)
dw_1[1].saveasascii(docname + '.xls') //첫번째 dw 저장
for li_i = 2 to upperbound(dw_1[])
dw_1[li_i].saveasascii(docname + '_' + string(li_i) + '.xls') //두번째 dw부터 저장
next
//엑셀과 연결 시작
oleobject export_object
uint excel_handle, excel_state
string excel_title
export_object = create oleobject
export_object.connecttonewobject("excel.application")
excel_title = export_object.Application.Caption
export_object.Application.Visible = True
excel_handle = FindWindowA( 0, excel_title )
SetFocus( excel_handle )
export_object.statusbar = "Importing data...."
export_object.workbooks.open(docname) //첫번째 저장 excel파일 읽어오기
export_object.windows(named).caption = "Export Workbook"
//엑셀파일의 포맷을 실시한다.
//자동 칸맞춤을 적용한다.
export_object.Worksheets[1].Columns.AutoFit
//헤드 줄은 bold로 지정한다.
export_object.rows("1:1").select
export_object.selection.font.bold = true
//export_object.selection.font.italic = false
export_object.statusbar = " Formatting labels....."
export_object.rows("1:1").select
//셀들의 줄맞춤을 실시한다.
export_object.selection.wraptext = true
export_object.selection.horizontalalignment = true
export_object.selection.verticalalignment = true
//미리보기에서 헤드셀들은 반복되어 나타나게 한다.
export_object.Activesheet.PageSetup.PrintTitleRows = "$1:$1"
//두번째 엑셀파일 부터는 시트로 하나씩 읽어오기
for li_i = 2 to upperbound(dw_1[])
export_object.workbooks.open(docname + '_' + string(li_i) + '.xls').Worksheets[1].Copy(export_object.workbooks(1).Worksheets[1])
export_object.workbooks(2).close()
next
export_object.DisConnectObject() //연결종료
Destroy export_object //오브젝트 제거
http://cafe.naver.com/daoubuilder.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=967
FUNCTION UInt FindWindowA( Ulong className, string winName ) LIBRARY "user32.dll"
FUNCTION UInt SetFocus( int winHand ) LIBRARY "user32.dll"
스크립트 입니다.
OleObject myOleObject
int i_Result,rc
String excel_title
UInt excel_handle
ole_obj = Create OleObject //ole 오브젝트 생성
i_Result = ole_obj.ConnectToNewObject( "excel.application" )
// 엑셀에 연결
excel_title = ole_obj.Application.Caption
ole_obj.Application.Visible = True
excel_handle = FindWindowA( 0, excel_title )
SetFocus( excel_handle )
ole_obj.WorkBooks.Open("c:\mmm.xls")
// c:\mmm.xls 을 불러온다.
ole_obj.WindowState = 2
// 엑셀윈도우의 상태 지정 1-normal, 2-min, 3-max
//sheet1의 A1셀의 데이터를 불러올때
double a // 엑셀 데이터타입에 맞는 형을 선언
a = ole_obj.application.workbooks(1).worksheets(1).Range( "A1" ).Value
//만약 sheet2에 접근하려면 아래처럼 합니다.
//a = ole_obj.application.workbooks(1).worksheets(2).Range( "A1" ).Value
//sheet1의 A4에 'Park'이라는 값을 넣으려면 아래처럼
ole_obj.application.workbooks(1).worksheets(1).Range( "A4" ).Value = 'Park'
ole_obj.application.ActiveWorkbook.Activesheet.Range( "A15" ).Value = 'Park'
//파일을 하나더 생성할때
ole_obj.Workbooks.Add()
ole_obj.workbooks(1).activesheet.Range( "A3" ).Value = 'Wang'
//sheet추가하기 333 sheet가 맨앞에 배열된다.
ole_obj.Workbooks(1).Sheets.add.name = '111'
ole_obj.Workbooks(1).Sheets.add.name = '222'
ole_obj.Workbooks(1).Sheets.add.name = '333'
//555가 맨마지막으로 간다.
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets(1).name = '111'
ole_obj.Workbooks(1).worksheets(2).name = '222'
ole_obj.Workbooks(1).worksheets(3).name = '333'
ole_obj.Workbooks(1).worksheets(4).name = '444'
ole_obj.Workbooks(1).worksheets(5).name = '555'
ole_obj.ActiveWorkbook.activesheet.Columns.AutoFit /* 자동 싸이즈 맞춤*/
ole_obj.ActiveWorkbook.activesheet.Cells(2,3).select /* 2, C 열을 선택하고 있다..*/
/* 셀병합 */
ole_obj.range("A1:Z1").select // A1부터 Z1까지 구간 선택
ole_obj.selection.MergeCell = true
ole_obj.selection.HorizontalAlignment = 3
ole_obj.selection.VerticalAlignment = 3
ole_obj.selection.font.blod = true
ole_obj.selection.font.size = 14
ole_obj.selection.rowheight = 28.50
ole_obj.activecell.formulaR1C1 = "셀병합TITLE" + String(al_sheet)
ole_obj.Sheets[1].name = String(al_sheet) + "번째 sheet"
/* 그림파일불러오기 */
ActiveSheet.Pictures.Insert("C:\자료\그림모음\"&Range("A1")&".jpg")
ole_obj.application.workbooks(1).Save() //엑셀저장
//ole_obj.application.workbooks(1).SaveAs("c:\mmm3.xls")
//ole_obj.Application.WorkBooks(1).SaveAs(as_path, -4143) /* -4143(통합문서), 56(97~2003), 51(2007) */
//mmm3.xls로 새이름으로 저장하는 방법
ole_obj.DisConnectObject() //연결종료
Destroy ole_obj //오브젝트 제거
ole_excel.Application.displayalerts = false // 경고창 무시
ole_excel.workbooks(1).save()
출처
http://pbdc.pe.kr/zeroboard/zboard.php?id=tip&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=44
===================================
HyperLink관련 건우아빠님 도움을 받아서 나머지 OLE Control 정리합니다. ^^
정확하게 모든걸 사용할라면 상당히 많은 양이지만 나머지는 매크로나 관련 MSDN참조하시면 될듯합니다.
(http://msdn.microsoft.com/en-us/library/aa272254(office.11).aspx)
>> 시작부
OleObject ole_excel
Int ret
ole_excel = Create OleObject
// OLE Object 객체 생성
ret = ole_excel.connecttonewobject("excel.application")
// Excel Application을 연결합니다.
IF ret <> 0 THEN
Messagebox("오류", "실행화일을 찾을 수 없습니다.")
Destroy ole_excel
return
End If
>> 종료부
ole_excel.DisConnectObject()
Destroy ole_excel
ole_excel.StatusBar = "Table List Draw Common Control..."
// 상태바 컨트롤
ole_excel.Application.workbooks(1).WorkSheets(1).Activate
// Active 상태로 현재 WorkSheet (배열 또는 제목) 변경
ole_excel.Application.workbooks(1).WorkSheets(1).name = '테이블목록'
// WorkSheet의 이름을 변경, 동일한 이름일시 에러
ole_excel.Application.workbooks(1).WorkSheets(1).Rows.Font.Name = '굴람체'
// WorkSheet 전체에 대한 Font Name을 변경
ole_excel.Application.workbooks(1).WorkSheets(1).Rows.Font.Size = 10
// WorkSheet 전체에 대한 Font Size를 변경
Excel OLE 역시 프로퍼티가 계층 구조를 이뤄있기에 상위 컨트롤 대상에 속성이 존재한다면 하위 속성 변경도 동일
ole_excel.workbooks(1).WorkSheets(1).Range("A1:F100").Select
// A1부터 F100까지 선택
ole_excel.selection.Borders.LineStyle = cExcel.xlDot
//선택된 Cells에 대해서 라인 스타일을 변경
ole_excel.selection.Borders.Color = RGB(0, 0, 0)
//선택된 Cells에 대해서 색상을 변경
ole_excel.workbooks(1).WorkSheets(1).Range("F:F").Borders(cExcel.xlEdgeRight).LineStyle = cExcel.xlContinuous
//F 전체 Cells에 대해서 xlEdgeRight 보더의 라인 스타일을 xlContinuous 으로 변경
ole_excel.workbooks(1).WorkSheets(1).Range("A1").Value = "NO"
// A1에 대해서 NO로 변경
ole_excel.workbooks(1).WorkSheets(Sheet_Num).Range("K:K").ColumnWidth = 48.75
// K 전체 대해서 columnWidth를 48.75로 변경
ole_excel.workbooks(1).WorkSheets(Sheet_Num).Range("A1:B1").Select
// A1 ~ B1 까지 영역을 선택
ole_excel.Selection.Merge
// 선택된 영역을 합침
ole_excel.Selection.font.Bold = True
// Font Style Bold 적용
ole_excel.selection.Interior.ColorIndex = 6
// 선택된 영역의 Color Index 를 6으로 설정
ole_excel.ActiveWorkbook.Sheets(1).Hyperlinks.Add(ole_excel.Selection, "#테이블목록!A1", "","","TABLE-ID")
// 테이블목록 WorkSheets로 A1 영역으로 하이퍼 링크 설정, 보여지는 Text는 TABLE-ID
ole_excel.workbooks(1).WorkSheets(Sheet_Num).Range("A5:B5").Select
//A5 ~ B5까지 영역을 선택
ole_excel.ActiveCell.FormulaR1C1 = 'FOREGIN KEY'
// 선택된 영역을 Text를 FOREGIN KEY로 설정
ole_excel.ActiveWindow.DisplayGridlines = False
//현재 ActiveSheet에 대해서 DisplayGridlines 설정을 제거
ole_excel.ActiveWindow.Zoom = 80
//현재 ActiveSheet에 대해서 화면 비율을 80%로 설정
사용된 소스를 일부 머지하여 주석 형식으로 올립니다.
[출처] [PB] Excel OLE (파워빌더 모임) |작성자 또치
==============================================================
자료출처 : http://daily.pe.kr
Long ll_ret
String ls_ret
String ls_string1
oleobject myoleobject
myoleobject = create oleobject
ll_ret = myoleobject.connecttoobject("c:a.xls")
Messagebox("Result!",string(ll_ret))
myoleobject.Application.Visible = TRUE
// 쓰기
myoleobject.application.workbooks(1).worksheets(1).cells(1,1).value="Test"
// 읽기
ls_ret = myoleobject.application.workbooks(1).worksheets(1).cells(1,1).value
/* 추가 사항 */
//Excel File Open
myOleObject.WorkBooks.Open("c:a.xls")
// Sheet Name
ls_string1 = myOleObject.sheets[1].Name
// Sheet 자동마춤
myOleObject.Worksheets[1].Columns.AutoFit
// Sheet의 갯수 읽기
ll_PageCnt = myOleObject.application.Workbooks(1).Worksheets.Count
//읽기
ls_ret = myOleobject.application.workbooks(1).worksheets(1).Range( "A1" ).Value
//쓰기
myOleobject.application.workbooks(1).worksheets(1).Range( "A1" ).Value = 'Test'
//Row Delete 행삭제
myOleobject.application.Workbooks(1).Worksheets(1).rows("1").delete
// 시트의 이름을 지정
myoleobject.Sheets[1].Name = "Sheet명"
//저장
myoleobject.application.workbooks(1).Save()
//다른이름으로 저장
myoleobject.application.workbooks(1).SaveAs("c:b.xls")
//다른이름으로 저장 - Sheet 별로 (tab으로 분리된 text파일)
myoleobject.application.Workbooks(1).Worksheets(i).SaveAs("c:c.txt",3) //인자값 (3) 에 따라 저장형식 다름 - 엑셀 도움말 참조
//새로열기
myoleobject.connecttonewobject("excel.application")
//파일열기
myoleobject.WorkBooks.Opentext('c:tmpgoodef.xls')
//타이틀바 바꾸기
myoleobject.Application.caption = "My Excel"
// 첫번째 Row 선택후 처리
myoleobject.rows("1:1").select
//굵은글씨
myoleobject.selection.font.bold = true
//이탤릭으로
myoleobject.selection.font.italic = true
//글씨색
myoleobject.selection.font.Color = RGB (128,128,0)
//보더색
myoleobject.selection.Borders.Color = RGB (0,0,128)
//워드랩
myoleobject.selection.wraptext = true
//가로정렬
myoleobject.selection.horizontalalignment = true
//세로정렬
myoleobject.selection.verticalalignment = true
//상태바 표시
myoleobject.statusbar = " My Status"
//첫번째Row를 프린트시 반복으로 (헤더로 표시)
myoleobject.Activesheet.PageSetup.PrintTitleRows = "$1:$1"
//첫번째쉬트를 복사 - 자세한 내용은 엑셀도움말을 참조
myoleobject.Worksheets(1).copy
//저장없이 닫기
myoleobject.WorkBooks(1).Close(false)
//연결해제
myoleobject.DisConnectObject()
destroy myoleobject
/******************/
ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).Select
ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).font.size = iTopFont
//ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).font.bold = true
ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).HorizontalAlignment = -4131 //1:우, 2: 좌, 3:중앙(-4152, -4131, -4108)
ole_1.ActiveSheet.Range(sEndCell + ":" + sEndCell2).Interior.Color = sSclColor
ole_1.Selection.MergeCells = True
ole_1.ActiveSheet.Range(sBgnCell + ":" + sEndCell).borders(4).linestyle = 1
//상단 선 그리기
sFBgnCell = sBgnId + String(iBgnCell)
sFEndCell = sEndId + String(iBgnCell)
ole_1.ActiveSheet.Range(sFBgnCell + ":" + sFEndCell).Borders(3).Weight = 4
//하단 선 그리기
ole_1.ActiveSheet.Range(sBgnCell + ":" + sEndCell).borders(4).linestyle = 1
ole_1.ActiveSheet.Range(sBgnCell + ":" + sEndCell).borders(4).Weight = 4
//좌측 CELL 선그리기
sFBgnCell = sBgnId + String(iBgnCell)
sFEndCell = sBgnId + String(iEndCell)
ole_1.ActiveSheet.Range(sFBgnCell + ":" + sFEndCell).borders(1).Weight = 4
//우측 CELL 선그리기
sFBgnCell = sEndId + String(iBgnCell)
sFEndCell = sEndId + String(iEndCell)
ole_1.ActiveSheet.Range(sFBgnCell + ":" + sFEndCell).borders(2).Weight = 4
ELSE
ole_1.Active
ole_1.WorkSheets(2).Range( ls_Range ).borders(3).linestyle = 1 /* 상 */
ole_1.WorkSheets(2).Range( ls_Range ).borders(4).linestyle = 1 /* 하 */
ole_1.WorkSheets(2).Range( ls_Range ).borders(1).linestyle = 1 /* 좌 */
ole_1.WorkSheets(2).Range( ls_Range ).borders(2).linestyle = 1 /* 우 */
이거를 없애고 내용만 저장할 수 는 없을까요?
ole.ActiveWorkbook.Sheets("sheet1").Cells(1, 1).Delete 말씀 하시는건지
dw_equipmt.SaveAs("gr_computers", "G:\INVENTORY\SALES.XLS", excel5!, true)
true는 헤드저장 false 해드없이 (help)
/********************************************************************************/
int value
string docname, named
integer li_i
docname = "c:\" + title
named = title+".xls"
if FileExists(docname) then filedelete(docname)
dw_1[1].saveasascii(docname + '.xls') //첫번째 dw 저장
for li_i = 2 to upperbound(dw_1[])
dw_1[li_i].saveasascii(docname + '_' + string(li_i) + '.xls') //두번째 dw부터 저장
next
//엑셀과 연결 시작
oleobject export_object
uint excel_handle, excel_state
string excel_title
export_object = create oleobject
export_object.connecttonewobject("excel.application")
excel_title = export_object.Application.Caption
export_object.Application.Visible = True
excel_handle = FindWindowA( 0, excel_title )
SetFocus( excel_handle )
export_object.statusbar = "Importing data...."
export_object.workbooks.open(docname) //첫번째 저장 excel파일 읽어오기
export_object.windows(named).caption = "Export Workbook"
//엑셀파일의 포맷을 실시한다.
//자동 칸맞춤을 적용한다.
export_object.Worksheets[1].Columns.AutoFit
//헤드 줄은 bold로 지정한다.
export_object.rows("1:1").select
export_object.selection.font.bold = true
//export_object.selection.font.italic = false
export_object.statusbar = " Formatting labels....."
export_object.rows("1:1").select
//셀들의 줄맞춤을 실시한다.
export_object.selection.wraptext = true
export_object.selection.horizontalalignment = true
export_object.selection.verticalalignment = true
//미리보기에서 헤드셀들은 반복되어 나타나게 한다.
export_object.Activesheet.PageSetup.PrintTitleRows = "$1:$1"
//두번째 엑셀파일 부터는 시트로 하나씩 읽어오기
for li_i = 2 to upperbound(dw_1[])
export_object.workbooks.open(docname + '_' + string(li_i) + '.xls').Worksheets[1].Copy(export_object.workbooks(1).Worksheets[1])
export_object.workbooks(2).close()
next
export_object.DisConnectObject() //연결종료
Destroy export_object //오브젝트 제거
http://cafe.naver.com/daoubuilder.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=967
FUNCTION UInt FindWindowA( Ulong className, string winName ) LIBRARY "user32.dll"
FUNCTION UInt SetFocus( int winHand ) LIBRARY "user32.dll"
스크립트 입니다.
OleObject myOleObject
int i_Result,rc
String excel_title
UInt excel_handle
ole_obj = Create OleObject //ole 오브젝트 생성
i_Result = ole_obj.ConnectToNewObject( "excel.application" )
// 엑셀에 연결
excel_title = ole_obj.Application.Caption
ole_obj.Application.Visible = True
excel_handle = FindWindowA( 0, excel_title )
SetFocus( excel_handle )
ole_obj.WorkBooks.Open("c:\mmm.xls")
// c:\mmm.xls 을 불러온다.
ole_obj.WindowState = 2
// 엑셀윈도우의 상태 지정 1-normal, 2-min, 3-max
//sheet1의 A1셀의 데이터를 불러올때
double a // 엑셀 데이터타입에 맞는 형을 선언
a = ole_obj.application.workbooks(1).worksheets(1).Range( "A1" ).Value
//만약 sheet2에 접근하려면 아래처럼 합니다.
//a = ole_obj.application.workbooks(1).worksheets(2).Range( "A1" ).Value
//sheet1의 A4에 'Park'이라는 값을 넣으려면 아래처럼
ole_obj.application.workbooks(1).worksheets(1).Range( "A4" ).Value = 'Park'
ole_obj.application.ActiveWorkbook.Activesheet.Range( "A15" ).Value = 'Park'
//파일을 하나더 생성할때
ole_obj.Workbooks.Add()
ole_obj.workbooks(1).activesheet.Range( "A3" ).Value = 'Wang'
//sheet추가하기 333 sheet가 맨앞에 배열된다.
ole_obj.Workbooks(1).Sheets.add.name = '111'
ole_obj.Workbooks(1).Sheets.add.name = '222'
ole_obj.Workbooks(1).Sheets.add.name = '333'
//555가 맨마지막으로 간다.
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets.Add()
ole_obj.Workbooks(1).worksheets(1).name = '111'
ole_obj.Workbooks(1).worksheets(2).name = '222'
ole_obj.Workbooks(1).worksheets(3).name = '333'
ole_obj.Workbooks(1).worksheets(4).name = '444'
ole_obj.Workbooks(1).worksheets(5).name = '555'
ole_obj.ActiveWorkbook.activesheet.Columns.AutoFit /* 자동 싸이즈 맞춤*/
ole_obj.ActiveWorkbook.activesheet.Cells(2,3).select /* 2, C 열을 선택하고 있다..*/
/* 셀병합 */
ole_obj.range("A1:Z1").select // A1부터 Z1까지 구간 선택
ole_obj.selection.MergeCell = true
ole_obj.selection.HorizontalAlignment = 3
ole_obj.selection.VerticalAlignment = 3
ole_obj.selection.font.blod = true
ole_obj.selection.font.size = 14
ole_obj.selection.rowheight = 28.50
ole_obj.activecell.formulaR1C1 = "셀병합TITLE" + String(al_sheet)
ole_obj.Sheets[1].name = String(al_sheet) + "번째 sheet"
/* 그림파일불러오기 */
ActiveSheet.Pictures.Insert("C:\자료\그림모음\"&Range("A1")&".jpg")
ole_obj.application.workbooks(1).Save() //엑셀저장
//ole_obj.application.workbooks(1).SaveAs("c:\mmm3.xls")
//ole_obj.Application.WorkBooks(1).SaveAs(as_path, -4143) /* -4143(통합문서), 56(97~2003), 51(2007) */
//mmm3.xls로 새이름으로 저장하는 방법
ole_obj.DisConnectObject() //연결종료
Destroy ole_obj //오브젝트 제거
ole_excel.Application.displayalerts = false // 경고창 무시
ole_excel.workbooks(1).save()
출처
http://pbdc.pe.kr/zeroboard/zboard.php?id=tip&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=44
===================================
HyperLink관련 건우아빠님 도움을 받아서 나머지 OLE Control 정리합니다. ^^
정확하게 모든걸 사용할라면 상당히 많은 양이지만 나머지는 매크로나 관련 MSDN참조하시면 될듯합니다.
(http://msdn.microsoft.com/en-us/library/aa272254(office.11).aspx)
>> 시작부
OleObject ole_excel
Int ret
ole_excel = Create OleObject
// OLE Object 객체 생성
ret = ole_excel.connecttonewobject("excel.application")
// Excel Application을 연결합니다.
IF ret <> 0 THEN
Messagebox("오류", "실행화일을 찾을 수 없습니다.")
Destroy ole_excel
return
End If
>> 종료부
ole_excel.DisConnectObject()
Destroy ole_excel
ole_excel.StatusBar = "Table List Draw Common Control..."
// 상태바 컨트롤
ole_excel.Application.workbooks(1).WorkSheets(1).Activate
// Active 상태로 현재 WorkSheet (배열 또는 제목) 변경
ole_excel.Application.workbooks(1).WorkSheets(1).name = '테이블목록'
// WorkSheet의 이름을 변경, 동일한 이름일시 에러
ole_excel.Application.workbooks(1).WorkSheets(1).Rows.Font.Name = '굴람체'
// WorkSheet 전체에 대한 Font Name을 변경
ole_excel.Application.workbooks(1).WorkSheets(1).Rows.Font.Size = 10
// WorkSheet 전체에 대한 Font Size를 변경
Excel OLE 역시 프로퍼티가 계층 구조를 이뤄있기에 상위 컨트롤 대상에 속성이 존재한다면 하위 속성 변경도 동일
ole_excel.workbooks(1).WorkSheets(1).Range("A1:F100").Select
// A1부터 F100까지 선택
ole_excel.selection.Borders.LineStyle = cExcel.xlDot
//선택된 Cells에 대해서 라인 스타일을 변경
ole_excel.selection.Borders.Color = RGB(0, 0, 0)
//선택된 Cells에 대해서 색상을 변경
ole_excel.workbooks(1).WorkSheets(1).Range("F:F").Borders(cExcel.xlEdgeRight).LineStyle = cExcel.xlContinuous
//F 전체 Cells에 대해서 xlEdgeRight 보더의 라인 스타일을 xlContinuous 으로 변경
ole_excel.workbooks(1).WorkSheets(1).Range("A1").Value = "NO"
// A1에 대해서 NO로 변경
ole_excel.workbooks(1).WorkSheets(Sheet_Num).Range("K:K").ColumnWidth = 48.75
// K 전체 대해서 columnWidth를 48.75로 변경
ole_excel.workbooks(1).WorkSheets(Sheet_Num).Range("A1:B1").Select
// A1 ~ B1 까지 영역을 선택
ole_excel.Selection.Merge
// 선택된 영역을 합침
ole_excel.Selection.font.Bold = True
// Font Style Bold 적용
ole_excel.selection.Interior.ColorIndex = 6
// 선택된 영역의 Color Index 를 6으로 설정
ole_excel.ActiveWorkbook.Sheets(1).Hyperlinks.Add(ole_excel.Selection, "#테이블목록!A1", "","","TABLE-ID")
// 테이블목록 WorkSheets로 A1 영역으로 하이퍼 링크 설정, 보여지는 Text는 TABLE-ID
ole_excel.workbooks(1).WorkSheets(Sheet_Num).Range("A5:B5").Select
//A5 ~ B5까지 영역을 선택
ole_excel.ActiveCell.FormulaR1C1 = 'FOREGIN KEY'
// 선택된 영역을 Text를 FOREGIN KEY로 설정
ole_excel.ActiveWindow.DisplayGridlines = False
//현재 ActiveSheet에 대해서 DisplayGridlines 설정을 제거
ole_excel.ActiveWindow.Zoom = 80
//현재 ActiveSheet에 대해서 화면 비율을 80%로 설정
사용된 소스를 일부 머지하여 주석 형식으로 올립니다.
[출처] [PB] Excel OLE (파워빌더 모임) |작성자 또치
==============================================================
자료출처 : http://daily.pe.kr
Long ll_ret
String ls_ret
String ls_string1
oleobject myoleobject
myoleobject = create oleobject
ll_ret = myoleobject.connecttoobject("c:a.xls")
Messagebox("Result!",string(ll_ret))
myoleobject.Application.Visible = TRUE
// 쓰기
myoleobject.application.workbooks(1).worksheets(1).cells(1,1).value="Test"
// 읽기
ls_ret = myoleobject.application.workbooks(1).worksheets(1).cells(1,1).value
/* 추가 사항 */
//Excel File Open
myOleObject.WorkBooks.Open("c:a.xls")
// Sheet Name
ls_string1 = myOleObject.sheets[1].Name
// Sheet 자동마춤
myOleObject.Worksheets[1].Columns.AutoFit
// Sheet의 갯수 읽기
ll_PageCnt = myOleObject.application.Workbooks(1).Worksheets.Count
//읽기
ls_ret = myOleobject.application.workbooks(1).worksheets(1).Range( "A1" ).Value
//쓰기
myOleobject.application.workbooks(1).worksheets(1).Range( "A1" ).Value = 'Test'
//Row Delete 행삭제
myOleobject.application.Workbooks(1).Worksheets(1).rows("1").delete
// 시트의 이름을 지정
myoleobject.Sheets[1].Name = "Sheet명"
//저장
myoleobject.application.workbooks(1).Save()
//다른이름으로 저장
myoleobject.application.workbooks(1).SaveAs("c:b.xls")
//다른이름으로 저장 - Sheet 별로 (tab으로 분리된 text파일)
myoleobject.application.Workbooks(1).Worksheets(i).SaveAs("c:c.txt",3) //인자값 (3) 에 따라 저장형식 다름 - 엑셀 도움말 참조
//새로열기
myoleobject.connecttonewobject("excel.application")
//파일열기
myoleobject.WorkBooks.Opentext('c:tmpgoodef.xls')
//타이틀바 바꾸기
myoleobject.Application.caption = "My Excel"
// 첫번째 Row 선택후 처리
myoleobject.rows("1:1").select
//굵은글씨
myoleobject.selection.font.bold = true
//이탤릭으로
myoleobject.selection.font.italic = true
//글씨색
myoleobject.selection.font.Color = RGB (128,128,0)
//보더색
myoleobject.selection.Borders.Color = RGB (0,0,128)
//워드랩
myoleobject.selection.wraptext = true
//가로정렬
myoleobject.selection.horizontalalignment = true
//세로정렬
myoleobject.selection.verticalalignment = true
//상태바 표시
myoleobject.statusbar = " My Status"
//첫번째Row를 프린트시 반복으로 (헤더로 표시)
myoleobject.Activesheet.PageSetup.PrintTitleRows = "$1:$1"
//첫번째쉬트를 복사 - 자세한 내용은 엑셀도움말을 참조
myoleobject.Worksheets(1).copy
//저장없이 닫기
myoleobject.WorkBooks(1).Close(false)
//연결해제
myoleobject.DisConnectObject()
destroy myoleobject
/******************/
ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).Select
ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).font.size = iTopFont
//ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).font.bold = true
ole_1.ActiveSheet.Range(sBgnCell + ":" + sBgnCell2).HorizontalAlignment = -4131 //1:우, 2: 좌, 3:중앙(-4152, -4131, -4108)
ole_1.ActiveSheet.Range(sEndCell + ":" + sEndCell2).Interior.Color = sSclColor
ole_1.Selection.MergeCells = True
ole_1.ActiveSheet.Range(sBgnCell + ":" + sEndCell).borders(4).linestyle = 1
//상단 선 그리기
sFBgnCell = sBgnId + String(iBgnCell)
sFEndCell = sEndId + String(iBgnCell)
ole_1.ActiveSheet.Range(sFBgnCell + ":" + sFEndCell).Borders(3).Weight = 4
//하단 선 그리기
ole_1.ActiveSheet.Range(sBgnCell + ":" + sEndCell).borders(4).linestyle = 1
ole_1.ActiveSheet.Range(sBgnCell + ":" + sEndCell).borders(4).Weight = 4
//좌측 CELL 선그리기
sFBgnCell = sBgnId + String(iBgnCell)
sFEndCell = sBgnId + String(iEndCell)
ole_1.ActiveSheet.Range(sFBgnCell + ":" + sFEndCell).borders(1).Weight = 4
//우측 CELL 선그리기
sFBgnCell = sEndId + String(iBgnCell)
sFEndCell = sEndId + String(iEndCell)
ole_1.ActiveSheet.Range(sFBgnCell + ":" + sFEndCell).borders(2).Weight = 4
ELSE
ole_1.Active
ole_1.WorkSheets(2).Range( ls_Range ).borders(3).linestyle = 1 /* 상 */
ole_1.WorkSheets(2).Range( ls_Range ).borders(4).linestyle = 1 /* 하 */
ole_1.WorkSheets(2).Range( ls_Range ).borders(1).linestyle = 1 /* 좌 */
ole_1.WorkSheets(2).Range( ls_Range ).borders(2).linestyle = 1 /* 우 */