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
[39422] [질문]Excel 파일을 TStringGrid 로 불러 들인 경우 속도 ???
임현 [asurada35] 1101 읽음    2005-03-09 10:39
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Variant ex=Variant::CreateObject("Excel.Application");
  ex.OlePropertyGet("WorkBooks").OleProcedure("Open","c:\\리스트1.xls");
  Variant awb=ex.OlePropertyGet("ActiveWorkBook");
  Variant sh=awb.OlePropertyGet("ActiveSheet");//엑티브sheet
//  Variant sh=awb.OlePropertyGet("Sheets").OlePropertyGet("item",1);//sheet1
//  Variant sh=awb.OlePropertyGet("Sheets").OlePropertyGet("item",2);//sheet2

  int row=sh.OlePropertyGet("UsedRange").OlePropertyGet("Rows").OlePropertyGet("Count"); //row갯수
  int col=sh.OlePropertyGet("UsedRange").OlePropertyGet("Columns").OlePropertyGet("Count");//col갯수

  StringGrid1->RowCount=row+1;
  StringGrid1->ColCount=col+1;

  for(int j=0;j<row;j++){
    for(int i=0;i<col;i++){
      StringGrid1->Cells[i+1][j+1]=sh.OlePropertyGet("Cells",j+1,i+1).OlePropertyGet("Value");
    }
  }

  awb.OleProcedure("Close");
  ex.OleProcedure("Quit");

  awb=Unassigned;
  ex=Unassigned;
}


위와 같은 경우 StringGrid 에 각 셀값을 적용하는 이중 for문에서 너무 많은 시간이 소요되더군요....

한번에 모든 셀을 불러들일 수 있는지????

어찌해야 할지 잘 모르겠습니다...

선배님들의 조언 부탁드립니다....

+ -

관련 글 리스트
39422 [질문]Excel 파일을 TStringGrid 로 불러 들인 경우 속도 ??? 임현 1101 2005/03/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.