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
[44628] Re:Re: 엑셀의 셀 값이 숫자인지 텍스트인지 체크..(질문추가)
0 [] 2926 읽음    2006-04-25 22:42
김태진 님이 쓰신 글 :
: 엑셀 파일의 내용을 읽어오기에 대해서 검색하는 중에..
: 또 궁금해서요..;;
:
: 엑셀의 셀 안에 있는 값이 정수인지 스트링인지를 체크할수가 있을까요?
:
: 예를 들어서 모든 셀을 읽어 와서..(아직 못찾았지만..;)
: 숫자 값이면 메모창에 출력
: 빈값이나 텍스트값이면 버림
: 으로 처리하고 싶습니다.
:
: 방법 좀 알려주시기 바랍니다..ㅠ_ㅠ
:
:
: 김태진 님이 쓰신 글 :
: : 안녕하세요..
: : 엑셀 파일을 읽어서
: : 약간의 수정을 가한 후 텍스트 파일로 만들려고 합니다.
: :
: : 우선 엑셀 파일을 셀 단위가 아닌 줄 단위로 읽어 올수 있는지 알고 싶습니다.
: : 줄 단위면.. 레코드..인가요?
: :
: : 그리고 데이터가 무지 큰 경우 ExcelApplication을 사용하면 무지 느리다고 하는데..
: :
: : 그냥 텍스트 형식으로 열수 있는지도 알고 싶습니다.
: :
: : 그리고 데이터가 1000줄 정도면..
: : 그냥 for 돌려서 cell을 읽어 들여서 처리할수 있는지..도
: : 알고 싶습니다..
: :
: : 엑셀 오토메이션에 대해 잘 아시는분 있으시면
: : 답변 좀 부탁드립니다!

1. Variant에는 Type 메서드가 있으므로 이를 사용할 수도 있고
2. Excel Application에는 WorksheetFunction 개체가 있는데 이 개체의 IsNumber 또는 IsText 메서드를 사용할 수도 있습니다.

Variant xlApp,xlBook,xlSheet,xlSheetFunction,value;
String msg;
int col,row,type;
try{
   xlApp = Variant::CreateObject("Excel.Application");
   xlApp.OlePropertySet("DisplayAlerts", false);
   xlApp.OlePropertySet("Visible", false);
   xlBook = xlApp.OlePropertyGet("Workbooks").OleFunction("Open","Book1.xls");
   xlSheet = xlBook.OlePropertyGet("Worksheets").OlePropertyGet("Item",1);
   xlSheetFunction = xlApp.OlePropertyGet("WorksheetFunction");
   for(col=1 ;col<3 ;col++){
    for(row=1 ;row<5 ;row++){
     value=xlSheet.OlePropertyGet("Cells",row,col).OlePropertyGet("Value");
     type=xlSheetFunction.OleFunction("IsNumber",xlSheet.OlePropertyGet("Cells",row,col));
     msg.printf("%c%d : value=%s \t type=%s(%d)"
      ,'A'+col-1
      ,row
      ,(AnsiString)value
      ,(type?"Number":(xlSheetFunction.OleFunction("IsText",xlSheet.OlePropertyGet("Cells",row,col))?"Text":"Else"))
      ,value.Type()
     );
     Memo1->Lines->Add(msg);
    }
   }
   xlBook.OleFunction("Close");
}__finally{
   try{
     xlApp.OleFunction("Quit");
   }catch(...){
   }
   xlApp = Unassigned;
   xlBook = Unassigned;
   xlSheet = Unassigned;
   xlSheetFunction = Unassigned;
   value = Unassigned;
}//try

+ -

관련 글 리스트
44574 엑셀 파일을 --> 텍스트 파일로.. 김태진 1405 2006/04/20
44576     Re: 엑셀의 셀 값이 숫자인지 텍스트인지 체크..(질문추가) 김태진 2184 2006/04/20
44628         Re:Re: 엑셀의 셀 값이 숫자인지 텍스트인지 체크..(질문추가) 0 2926 2006/04/25
44616         Re:Re: 엑셀의 셀 값이 숫자인지 텍스트인지 체크..(질문추가) 슬  4817 2006/04/25
44742             Re:Re:Re: 두 분 답변 감사합니다..^^ 김태진 1019 2006/05/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.