Excel Automation
젠장할 개똥같은 노가다 Excel 같으니...
* 셀 서식 - 텍스트
Range::SetNumberFormatLocal(COleVariant("@"));
* 셀 서식 - 1000 의 자리마다 , 찍기!!!
Range::SetNumberFormatLocal(COleVariant("#,##0_ "));
* 정렬 (히밤 대체 무슨 생각으로 이런식으로 한걸까? -_-;)
// 좌 : -4131, 가운데 : -4108, 우 : -4152
Range::SetVerticalAlignment(COleVariant((short)-4108));
Range::SetHorizontalAlignment(COleVariant((short)-4152));
* 셀 테두리
border 사용 - 보면 안다.
* 셀 색
Interior 사용 - 보면 안다.
* 그림 삽입 및 크기 설정 - 안해봐서 할말 없다.
objShapes = sheet.GetShapes();
objShape = objShapes.AddPicture(strPictureName, // FileName
(long)0, // LinkToFile
(long)-1, // SaveWithDocument
(float)left,
(float)top,
(float)width,
(float)height);
objShape.SetWidth((float)width);
objShape.SetHeight((float)height);
* Sheet 추가
Worksheets sheets; ///< 엑셀의 Worksheets 객체
_Worksheet sheet; ///< 엑셀의 _Worksheet 객체
LPCTSTR strTitle; // 설정한 Sheet 명
// sheet를 현재 존재하는 제일 마지막 sheet로 선택해두고...
COleVariant varOption((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
VARIANT varValue;
V_VT (&varValue) = VT_DISPATCH;
V_DISPATCH(&varValue) = (LPDISPATCH)sheet;
sheet = sheets.Add(varOption, varValue, varOption, varOption);
sheet.SetName(strTitle);
... 이렇게 하면 맨 마지막 다음에 Sheet가 생김...
* Excel Automation 을 Thread 에서 사용시...
CoInitialize(NULL);
CoUninitialize();
엑셀 매크로 이용하기
1. 엑셀 실행
2. 하고픈 일을 매크로를 켜놓고 한다.
3. 다되었으면 매크로를 종료하고 편집을 눌러 매크로 소스를 본다.
이렇게 하면 힌트는 얻을수있다...
히밤 근데 막장인 나는 COleVariant 변수가 너무 어렵단말이다!