|
int nColumCount = ExcelWorksheet1->get_UsedRange(TDefLCID())->Columns->Count;
int nRowCount = ExcelWorksheet1->get_UsedRange(TDefLCID())->Rows->Count;
위와같이 get_UsedRange()->Rows->Count를 사용하시면
데이터가 존재하는 범위의 RowCount, ColCount를 알 수 있습니다.
아래와 같은 응용도 가능 합니다...
Excel_xp::ExcelRange * Range = ExcelWorksheet1->get_UsedRange(TDefLCID());
int nColCount = Range->Columns->Count;
int nRowCount = Range->Rows->Count;
위의 방식은 제가 주로 사용하는 Range를 활용한 예 입니다.
ExcelRange를 활용하면 시트내의 거의 모든 작업을 수행 할 수 있습니다.
속도도 더 빠르구요 :)
엑셀에 관한한은 빌더포럼에 많은 Q/A를 올려놓았었습니다.
검색해보시면 많은 자료가 있을듯....
프로세스가 종료되지 않는 문제는 저도 간간히 발생하는 문제라 골치가 아파왔었습니다.
실마리를 하나 발견해서 그부분을 파해치고 있고 있습니다.
사실 ExcelApplication->Disconnec(); 를 실행하여도 프로세스는 죽는데말이죠...
프로세스의 제어에 대한 부분은 ExcelApplication컴포넌트에서 관리 하고 있는데... 이부분을 좀 뒤져봐야 할것 같네요
언제 한번 기회가 되면 Excel에 대한 많은 기능들을 정리해야겠습니다...
그럼 즐프 하시길.
newhuni 님이 쓰신 글 :
: 아.. 그렇군요...
: 소리바람.OJ님 조언감사드립니다.
:
: 한가지만 더 여쭤볼께요...
: 엑셀에서 데이타를 읽어와 스트링 그리드에 넣을려고 하는데요...
: 해당 시트의 RowCount, ColCount값은 어떻게 알수 있나요??
:
: int a = ExcelWorksheet1->Rows->get_Count();
: int j = ExcelWorksheet1->Columns->get_Count();
: 으로 하면 전체 RowCount, ColCount값이 리턴됩니다..
:
: 전 데이타가 존재하는 영역내의 값만 있으면 되거든요...
:
: 이쪽관련해서 자료가 많지 않아.. 이것저것 해보고 있는데..
: 진전이 많진 않습니다...
:
:
: 소리바람.OJ 님이 쓰신 글 :
: : 작업관리자에서 보면 프로세스가 살아있지요?
: : 그런 현상은 Acrobat reader를 웹브라우져등에서 호출하고
: : 브라우져를 종료시켜도 남아있는 경우와 동일하다고 생각됩니다.
: : 저도 명확한 이유를 모르겠군요.
: :
: : newhuni님께서 만드신 프로그램에서만 일어나는 일이 아니므로
: : 그렇게 걱정하실 필요는 없을 듯 합니다.
: :
: : 제 생각엔,
: : COM/COM+등으로 호출된 것들의 종속적 관계에 의해서
: : 프로세스가 남게 된다고 봅니다.
: : 바로 죽인다면 문제 발생의 요소가 있다고 판단하서 ... 쿨럭.
: :
: : 이럴때는 'exel.exe'프로세스를 찾아서 직접 종료시키는 방법뿐인 듯 합니다.
: : 만약 엑셀로 작업하면서 만드신 프로그램을 사용하시면 같이 종료될 수 있다는 것도 염두에 두시기 바랍니다.
: :
: : 즐겁게 하루 마무리 하시기 바랍니다.
: :
: :
: : newhuni 님이 쓰신 글 :
: : : 안녕하세요.
: : : 엑셀 컴포넌트를 이용하여 데이타를 엑셀파일로 저장하고 있습니다.
: : : 데이타 저장은 잘 되는데... 저장 후 엑셀 프로세스가 죽지 않습니다.
: : : 엑셀은 아래와 같이 종료시킵니다.
: : :
: : : ExcelWorksheet1->Disconnect();
: : : ExcelWorkbook1->Disconnect();
: : : ExcelApplication1->Disconnect();
: : :
: : : 그리고
: : : ExcelApplication1->Quit();를 하여도 프로세스가 계속 남아있습니다.
: : :
: : : Q/A를 찾아보니 관련 질문이 올라와 있는데.. 명쾌한 답변은 없네요...
: : :
: : : 강제로 EXCEL.EXE 프로세스를 죽여야 하는지.
: : : 아니면 엑셀 컴포넌트에 기능이 있는데 제가 못 찾는건지... 궁금합니다.
|