excel automation tutorial using mfc...프로젝트생성 8 set up 클래스추가 9 set up...

21
ISL / 강한솔 : Using MFC Excel Automation Tutorial

Upload: others

Post on 24-Jan-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

ISL / 강한솔

: Using MFCExcel Automation Tutorial

Page 2: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

IndexIndex

2

Motivation of Study

Excel Automation

Set Up

Class

Demo

2019-04-10

Page 3: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

3

Motivation of Study

Intek Plus Server Program엑셀저장기능

Page 4: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

4

Motivation of Study

Intek Plus Server Program

Page 5: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

5

Excel Automation

Automation

: 응용프로그램외부에서응용프로그램객체를조작할수있는방법. 표준소프트웨어아키텍처인COM에기반을둠.

COM(Component Object Model)

: 다른소프트웨어제작사에의해만들어진컴포넌트를자신의소프트웨어에서사용할수있게하는소프트웨어아키텍쳐.

Type Libraires

: COM Object의기능에관한정보를제공하는파일.

Excel Automation : 엑셀이아닌다른프로그램(MFC)를이용하여엑셀을조작하는것.

Page 6: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

6

Set Up

프로젝트생성

Page 7: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

7

Set Up

프로젝트생성

Page 8: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

8

Set Up

클래스추가

Page 9: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

9

Set Up

클래스추가

Page 10: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

10

클래스추가

Set Up

10

Page 11: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

11

Set Up

클래스추가

Page 12: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

12

Set Up

헤더파일주석처리

Page 13: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

13

Set Up

Crange의 DialogBox 주석처리

Page 14: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

14

Class

Class

CApplication

CWorkbooks(CWorkbook)

CWorksheets(CWorksheet)

CRange

Page 15: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

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"));

: 엑셀을실행.

: 워크북의정보를불러옴.

: 엑셀을가시화시켜줌.

: 유저가엑셀을제어할수있도록함.

Page 16: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

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()

: 엑셀파일을생성또는불러옴

: 워크시트정보를불러옴.

Page 17: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

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")));

Page 18: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

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

Page 19: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

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")));

Page 20: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

20

Demo

Page 21: Excel Automation Tutorial Using MFC...프로젝트생성 8 Set Up 클래스추가 9 Set Up 클래스추가 10 클래스추가 Set Up 10 11 Set Up 클래스추가 ... 워크북의정보를불러옴.:

Q & A