C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51088] Re:엑셀에서 특정 열의 타입을 지정해주는 방법을 알고 싶습니다.
장성호 [nasilso] 4612 읽음    2007-10-30 00:18
엑셀에 관련된 자료가 여기 많기는 한데..
님이 질문한 내용은 없는듯 하네요

Excel은 너무 많은 기능이 있어서 그것을 익히기도 쉽지않은데..
프로그램으로 직접 제어하는 기능까지 다 알기는 어렵죠

하지만 어떠한 특이한 기능이라도 찾는 방법이 있으니 ..
그것은 메크로 라는 것입니다.

1. 엑셀을 실행하고
2. 도구 => 메크로 =>새 메크로 실행  한후..
3. 엑셀에서 원하는 기능을 수행하고.
4. 도구 => 메크로 => 메크로 정기 한후
5. 그 메크로의 내용을 그대로 코딩하면 됩니다.

특정 셀의 타입을 변경하는 방법을 메크로로 기록하니 아래와 같이 되더군요
//------------------------------------------------------------
Sub Macro1()
'
' Macro1 Macro
' 장성호이(가) 2007-10-29에 기록한 매크로

    Range("C5").Select
    ActiveCell.FormulaR1C1 = "123123123"
    Range("C5").Select
    Selection.NumberFormatLocal = "@"
End Sub
//------------------------------------------------------------


위 메크로에서 이부분이 핵심입니다.
Selection.NumberFormatLocal = "@"

선택된 셀의 속성을 문자(Text)로 바꾸는 것이죠


아래에 샘플 코딩 해보았습니다.


//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Variant excel_app;
    Variant excel_book;
    Variant excel_sheet;
    Variant cells;

    String asFileName="C:\\Test.xls";

    excel_app=Variant::CreateObject("excel.application");                   //Excel 프로그램 실행
    excel_app.OlePropertySet("Visible", (Variant)true);                     //Excel 프로그램 Visible설정
    excel_app.OlePropertyGet("WorkBooks").OleProcedure("Open",asFileName.c_str());  //문서 파일 열기
    excel_book=excel_app.OlePropertyGet("ActiveWorkbook");                  //현재 Active된 WorkBook 선택
    excel_sheet=excel_book.OlePropertyGet("ActiveSheet");                   // WorkBook에서 Acitve된 Sheet선택


    cells = excel_sheet.OlePropertyGet("Cells",2 , 2); //Cell선택           // Sheet에서 Cell  2,2 선택

    String sSet="@";
    cells.OlePropertySet("NumberFormatLocal",WideString(sSet));  //선택한 Cell속성을 Text로 변경

    String vValue="123123123123";
    cells.OlePropertySet("Value", WideString(vValue));          //선택한 Cell에 데이타 입력


    excel_book.OleProcedure("SaveAs",asFileName.c_str());       //저장
    excel_book.OleFunction("Close", (Variant)False);            //Excel 문서 닫기
    excel_sheet = Unassigned;
    excel_book = Unassigned;
    excel_app.OleFunction("Quit");                              //Excel 프로그램 종료
    excel_app = Unassigned;
}
//---------------------------------------------------------------------------


위 샘플은 특정 cell의 속성을 text로 설정했는데...

특정 행이나 열 또는 영역의 설정을  바꾸려면  선택하는 부분만 바꾸면 되겠죠
일일이 모든 cell을 반복해서 선택해 설정하는것은 노가다고..
그 방법도 메크로를 통해 확인하면 간단합니다.

그럼...


김정균 님이 쓰신 글 :
: 엑셀 OleObject를 사용하여 자료를 저장하고 있습니다.
: 근데 문제가 엑셀의 특정 열의 cell 타입을 text로 지정해주고 싶은데
: 방법을 모르겠습니다.
: OlePropertySet을 사용하면 될거 같은데 매개변수의 값을 어떻게 줘야할지
: 모르겠네요. 아시는분이 알려주시면 감사하겠습니다.
:
: ps. OlePropertySet에서 사용가능한 값들이 나와있는 웹페이지가 있으면
:       알려주세요.

+ -

관련 글 리스트
51070 엑셀에서 특정 열의 타입을 지정해주는 방법을 알고 싶습니다. 김정균 1468 2007/10/29
51088     Re:엑셀에서 특정 열의 타입을 지정해주는 방법을 알고 싶습니다. 장성호 4612 2007/10/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.