excel automation tutorial using mfc...프로젝트생성 8 set up 클래스추가 9 set up...
Post on 24-Jan-2020
11 Views
Preview:
TRANSCRIPT
ISL / 강한솔
: Using MFCExcel Automation Tutorial
IndexIndex
2
Motivation of Study
Excel Automation
Set Up
Class
Demo
2019-04-10
3
Motivation of Study
Intek Plus Server Program엑셀저장기능
4
Motivation of Study
Intek Plus Server Program
5
Excel Automation
Automation
: 응용프로그램외부에서응용프로그램객체를조작할수있는방법. 표준소프트웨어아키텍처인COM에기반을둠.
COM(Component Object Model)
: 다른소프트웨어제작사에의해만들어진컴포넌트를자신의소프트웨어에서사용할수있게하는소프트웨어아키텍쳐.
Type Libraires
: COM Object의기능에관한정보를제공하는파일.
Excel Automation : 엑셀이아닌다른프로그램(MFC)를이용하여엑셀을조작하는것.
6
Set Up
프로젝트생성
7
Set Up
프로젝트생성
8
Set Up
클래스추가
9
Set Up
클래스추가
10
클래스추가
Set Up
10
11
Set Up
클래스추가
12
Set Up
헤더파일주석처리
13
Set Up
Crange의 DialogBox 주석처리
14
Class
Class
CApplication
CWorkbooks(CWorkbook)
CWorksheets(CWorksheet)
CRange
15
Class
CApplication
: 엑셀실행또는관리하기위한클래스
Member Function
BOOL CreateDispatch(LPCTSTR lpszProgID, COleException* pError = NULL);
void put_Visible(BOOL newValue)
void put_UserControl(BOOL newValue)
LPDISPATCH get_Workbooks()
ex) app.CreateDispatch(_T("Excel.Application"));
: 엑셀을실행.
: 워크북의정보를불러옴.
: 엑셀을가시화시켜줌.
: 유저가엑셀을제어할수있도록함.
16
Class
CWorkbooks & CWorkbook
: 엑셀파일을열거나저장할때사용하는클래스
Member Function
LPDISPATCH Add(VARIANT& Template)
[Cworkbooks]
[Cworkbook]
ex) book = books.Add (COleVariant((long)DISP_E_PARAMNOTFOUND,VT_ERROR));
book = books.Add(COleVariant(_T("test.xls")));
LPDISPATCH get_Worksheets()
: 엑셀파일을생성또는불러옴
: 워크시트정보를불러옴.
17
Class
CWorksheets & CWorksheet
: 엑셀워크북내에있는시트를다루는클래스.
Member Function
[Cworksheets]
[Cworksheet]
LPDISPATCH Add(VARIANT& Before, VARIANT& After, VARIANT& Count, VARIANT& Type)
ex) sheets.Add(covOptional,covOptional,COleVariant((long)5),covOptional);
LPDISPATCH get_Item(VARIANT& Index)
: 워크시트추가.
: 워크시트선택.
LPDISPATCH get_Range(VARIANT& Cell1, VARIANT& Cell2)
: 시트에서사용할범위지정.
ex) range = sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A1")));
range = sheet.get_Range(COleVariant(_T("A1")), COleVariant(_T("D1")));
18
Class
CRange
: 엑셀시트안에서이용할셀의사용범위를지정하는클래스(실질적인텍스트나데이터입력).
Member Function
ex) range = sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A1")));
range.put_Value2(COleVariant(_T("First Name")));
: 해당하는범위에데이터입력.
void put_Value2(VARIANT& newValue)
LPDISPATCH get_Font()
: 폰트정보를불러옴.
void put_HorizontalAlignment(VARIANT& newValue), void put_VerticalAlignment(VARIANT& newValue)
: 해당하는셀의정렬을설정.
ex) range.put_HorizontalAlignment(COleVariant((short)-4108));
range.put_VerticalAlignment(COleVariant((short)-4108));
xlVAlignBottom = -4107,
xlVAlignCenter = -4108,
xlVAlignDistributed = -4117,
xlVAlignJustify = -4130,
xlVAlignTop = -4160
19
Class
CRange
: 엑셀시트안에서이용할셀의사용범위를지정하는클래스(실질적인텍스트나데이터입력).
Member Function
void put_Formula(VARIANT& newValue)
ex) range = sheet.get_Range(COleVariant(_T("D2")), COleVariant(_T("D6")));
range.put_Formula(COleVariant(_T("=RAND()*100000")));
: 해당하는범위에수식입력.
VARIANT AutoFit()
: 해당하는범위의자동간격정렬
LPDISPATCH get_EntireColumn()
: 해당하는범위의전체컬럼정보를얻음.
ex) range = sheet.get_Range(COleVariant(_T("A1")), COleVariant(_T("D1")));
cols = range.get_EntireColumn();
cols.AutoFit();
void put_NumberFormat(VARIANT& newValue)
: 해당하는범위에숫자표현형태설정.
ex) range.put_NumberFormat(COleVariant(_T("0.0")));
range.put_NumberFormat(COleVariant(_T("0.000")));
range.put_NumberFormat(COleVariant(_T(“$0.00")));
20
Demo
Q & A
top related