2012/01/27 12:19
(역시 기본적으로 Class 마법사로 자동 생성된 Excel 래퍼 클래스를 이용, MFC 환경에서 작업했다)

CShapes shapes;
shapes = excel_sheet.get_Shapes();
 
CShape tmpShape1 = shapes.AddShape(4L, 50.0f, 50.0f, 100.0f, 100.0f);
CTextFrame ctf = tmpShape2.get_TextFrame();
CCharacters ch = ctf.Characters(COleVariant(0L),COleVariant(0L));

ch.put_Text("Test !!");

캐스팅을 줄줄줄 하면 코드 자체는 줄일 수 있다. 그것보다도... 이게 제대로 된 방법은 아닌 것 같은데 일단 동작은 한다-_-)

shape의 text에 접근하는 좀 더 단순한 방법이 있을 것으로 추측된다. 실제로 검색을 해 보면 뭔가 더 있을것 같긴 한데... 일단 자동 생성된 헤더에는 없는 것들이었다.

그래도 일단 동작하는 과정
1. 특정 Shape의 TextFrame을 얻어옴.
2. TextFrame에서 Characters를 얻어옴. 이 때 얻어올 수 있는 것들은 Shape 내의 Text의 일부에 해당한다. 파라미터로 시작점 끝점을 지정할 수 있음.
3. 
Characters에 쓰고 싶은 글을 쓰면 된다.

이 방법에는 일단 문제가 있다. 
put_Text가 덮어쓰기가 아니라면 ABCD라고 써있는 걸 1234로 바꾸려고 하면 굉장히 코드가 더러워질 것 같다. 덮어쓰기라고 해도 문제인 것이, text를 추가하는 과정이 굉장히 더러워진다.

이번엔 참고도 없음. 구글 뒤져서 대충 때려맞춰서 돌려 봤다. 



 
 

'개발' 카테고리의 다른 글

Excel 자동화 자투리(2)  (0) 2012/01/27
Excel 자동화 자투리(1)  (0) 2012/01/26
페이스북 앱  (0) 2012/01/17
홈플러스 어플 설치기  (0) 2012/01/09
Posted by 김세훈님