- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[API/MFC] Excel automation 2007 본문
// 오토메이션을 이용하여 클래스 만들기..
Class Wizard -> Automation -> Add Class ->Form a Type Libary -> 사용할 어플리케이션을 선택
Microsoft Access 97 Msacc8.olb
Microsoft Jet Database 3.5 DAO350.dll
Microsoft Binder 97 Msbdr8.olb
Microsoft Excel 97 Excel8.olb
Microsoft Graph 97 Graph8.olb
Microsoft Office 97 Mso97.dll
Microsoft Outlook 97 Msoutl97.olb
Microsoft PowerPoint 97 Msppt8.olb
Microsoft Word 97 Msword8.olb
Microsoft Access 2000 Msacc9.olb
Microsoft Jet Database 3.51 DAO360.dll
Microsoft Binder 2000 Msbdr9.olb
Microsoft Excel 2000 Excel9.olb
Microsoft Graph 2000 Graph9.olb
Microsoft Office 2000 Mso9.dll
Microsoft Outlook 2000 Msoutl9.olb
Microsoft PowerPoint 2000 Msppt9.olb
Microsoft Word 2000 Msword9.olb
Microsoft Access 2002 Msacc.olb
Microsoft Excel 2002 Excel.exe
Microsoft Graph 2002 Graph.exe
Microsoft Office 2002 MSO.dll
Microsoft Outlook 2002 Msoutl9.olb
Microsoft PowerPoint 2002 MSPpt.olb
Microsoft Word 2002 MSWord.olb
Microsoft Office Access 2003 Msacc.olb
Microsoft Office Excel 2003 Excel.exe
Microsoft Graph 2003 Graph.exe
Microsoft Office 2003 MSO.dll
Microsoft Office Outlook 2003 MSOutl.olb
Microsoft Office PowerPoint 2003 MSPpt.olb
Microsoft Office Word 2003 MSWord.olb
뭐를 추가해야 할지 모른다면 Confirm Classes 목록에서 그냥 다 추가 ㅋㅋ
//사용할 변수들
_Application m_oApp; //엑셀프로그램을 띄우기위해
_Worksheet m_oSheet; // 내가 사용하고자하는 단일 시트
Worksheets m_oSheets; // 워크북내의 시트들
_Workbook m_oBook; // 단일워크북(내가 사용하고자하는)
Workbooks m_oBooks; // 프로그램의 워크북들(각 파일??)
Range m_oRange; //시트를 다루기위해 필요한....
#include <afxdisp.h> // MFC Automation classes
// 프로그램 시작하는 곳에 추가
if(!AfxOleInit()) // Your addition starts here
{
AfxMessageBox("Could not initialize COM dll");
return FALSE;
} // End of your addition
AfxEnableControlContainer();
// 엑셀 프로그램 실행 및 핸들 가져오기??
// Start Excel and get Application object...
if(!m_oApp.CreateDispatch("Excel.Application"))
{
AfxMessageBox("Couldn't start Excel.");
}
else
{
//Make Excel Visible and display a message
m_oApp.SetVisible(TRUE);
// AfxMessageBox ("Excel is Running!");
}
LPDISPATCH l_lpDisp = m_oApp.GetWorkbooks();
m_oBooks.AttachDispatch(l_lpDisp);
m_oApp.SetVisible(TRUE);
//프로그램 실행 후 원하는 파일 열기
COleVariant l_ValOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
LPDISPATCH l_lpDisp;
l_lpDisp= m_oBooks.Open(m_strPath, // 열고자 하는 파일의 위치와 파일명
l_ValOptional, l_ValOptional, l_ValOptional,
l_ValOptional, l_ValOptional, l_ValOptional,
l_ValOptional, l_ValOptional, l_ValOptional,
l_ValOptional, l_ValOptional, l_ValOptional,
l_ValOptional, l_ValOptional);
ASSERT(l_lpDisp);
m_oBook.AttachDispatch(l_lpDisp);
ASSERT(l_lpDisp);
l_lpDisp = m_oBook.GetSheets();
m_oSheets.AttachDispatch(l_lpDisp);
//그외 사용법들...
//셀 범위 설정
l_lpDisp = m_oSheet.GetRange(COleVariant("A1"),COleVariant("A1"));
m_oRange.AttachDispatch(l_lpDisp);
//데이터 입력
m_oRange.SetValue2(COleVariant("가나다라"));
//셀 높이 조절
m_oRange.SetRowHeight((COleVariant)"42");
//셀 병합
l_lpDisp = m_oSheet.GetRange(COleVariant("A1"),COleVariant("G1"));
m_oRange.AttachDispatch(l_lpDisp);
m_oRange.SetMergeCells((COleVariant)"TRUE");
//Get_Data
VARIANT buf = m_oRange.GetValue2();
// CString temp = _bstr_t(buf.bstrVal).operator const char*();
// 워크북 저장
m_oBook.Save();
//워크북 종료
m_oBook.Close(COleVariant((short)FALSE), VOptional, VOptional);
//엑셀 종료
m_oApp.Quit();
기타 오토메이션 예제
http://dreamto.egloos.com/430769
[출처] Excel automation 2007|작성자 못난이
'★─Programing > ☆─API | MFC' 카테고리의 다른 글
[API/MFC] AfxMessageBox 타이틀 변경하기~ (0) | 2011.11.01 |
---|---|
[API/MFC] SetWindowPos() 함수 (0) | 2011.11.01 |
[API/MFC] C++와 COM 프로그래밍 (0) | 2011.11.01 |
[API/MFC] AfxMessageBox 타이틀 변경하기 (0) | 2011.07.20 |
[API/MFC] 다이얼로그에서 static text의 배경을 투명하게 하기 (0) | 2011.07.20 |