Q&A

  • stringgird와 excel을 연동시 excel자료의 count값을 어떻게 읽어야하는지?
excel자료를 stringgrid에 뿌려주려고 합니다. stringgrid의 rowcount값으로 뿌리는 게 아니라..
excel자료의 필요한부분(stringgrid로 뿌려줄 부분 즉, 데이타부분)의 일정좌표점에서 자료의 끝(row)를 알아내야 하는데.. 이걸 어떻게 하면 가능할까요?
excel의 약식은 column부분은 고정되어있지만 row부분은 데이타가 1건이 될수도 있고 여러건이 될수도 있습니다. 데이타 이외부분에 기간과 설명등의 잡다한 것은 접어두고 필요한 데이타 부분만 받으려고 합니다.

저는 stringgrid와 excel을 ole automation을 이용해 구성하였습니다.
제 개발 환경은 win98se에 델파이6.0인데..

ole 연결하는 정보가 다 제각각이라 장님 코끼리 더듬든 어찌어찌 되었는데..
이 count알아내는 게 죽음이네요..

일단 xlsheet로 excel에 접근은 했는데.. 이다음에 어떻게 해야 하는지 난감합니다.

xlsheet.rowcount; <-요걸 했지만 ole에러만 나는군요.. 메소드가 없다고..

혹시 알고 계신분 알려주시면 감사하겠습니다.

소소>
   uses
      comobj,variants;
....
   var
     xl,xlbook,xlsheet : variant;
     i : integer;
   begin
      xl := createoleobject('excel.application');
      xlbook := xl.workbooks.open(opendialog1.filename);
      xlsheet := xlbook.sheet['sheet'];
      xl.visible := true;

      i:=xlsheet.rowcout;           <-요거 택도 없습니다..
그래서 이렇게 해봤습니다.

      xlsheet.select;

      i:=xlsheet.selection.rowcount; <- 요거도 안됩니다.


도움 부탁드립니다..
4  COMMENTS
  • Profile
    김형수 2002.08.09 02:06
    차라리 스트링 그리드의 rowcont를 하나씩 증가시켜주면 어떨까요.
    처음에 스트링그리드의 rowcount를 2로 주고(타이틀과 처음 데이타 넣는 행),
    그다음부터 엑셀 데이타를 넣기전에
    stringgrid.rowcount:=stringgrid.rowcount+1;
    해주면, 자동적으로 증가될겁니다.
    도움이 되셨으면 합니다.
  • Profile
    이석배 2002.08.09 03:06

      제가 질문을 좀 잘못한 듯 하군요..
      일단.. excel에 자료가 있잖습니까..? 그 자료의 마지막 자료줄의 위치값을
      알아야만 for 문으로 stringgrid에 엑셀줄수만큼 루프를 돌릴 수 있다고 봅니다.

      즉, 엑셀이나 stringgrid나 둘다 row값이 명확한게 아닙니다. 계속 변하는 거죠..

      이럴때 우리는 눈으로 보면 몇번째 줄인지 확인이 가능한데.. 이것을 구현하려고
      하는 거죠..

      문제는 엑셀자료의 row의 최종값을 어떻게 폼에 넘겨서 루프를 돌리는가 입니다.

      그래서 xlsheet.rowcount 와 같은 안되는 코딩을 한 것이고.. 쩝..

      무언가 방법이 없나요..?

      EOF로 구현해봤지만.. 택도 없더군요.. 흑..

      고수분들의 도움 바랍니다.

    이거 안되면 코딩을 옛날방식으로 다시해야 하는데..
  • Profile
    박상기 2002.08.09 05:05
          i:=xlsheet.rowcout;           <-요거 택도 없습니다..

          i:=xlsheet.selection.rowcount; <- 요거도 안됩니다.

    택도 없는 부분을 xlsheet.UsedRange.Rows.Count로 바꾸시고 해보시기 바랍니다.


  • Profile
    이석배 2002.08.09 10:21

      앓던 이가 빠진 느낌입니다. 정말 고맙습니다.

      연동된 이후의 excel의 컨트롤은 macro기록된 VB화일을 보고

      컨트롤하는 걸루 알고 있는데 이건 정말 매크로로 기록도 안되어서

      거의 포기하고 있었는데.. 도움주셔서 정말 너무 감사합니다.

      excel을 연동하는 걸.. 언제 한번 정리해서 올려보도록 하겠습니다.


      다들  즐프하시길..
    • 이기훈
    • 2002.08.09 08:23
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 소리새
    • 2002.08.09 07:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Jo
      2002.08.09 20:02
      // 배열의 값이 다 사라진 이유눈 keysort[0, 998] 값이 비어있어서 그럽니다.    &nb...
    • 소리새
      2002.08.13 21:56
      정말감사합니다.
    • 2002.08.09 18:56
      이상하군요, 님이 하신 두가지 방법 다, 제가 해보니 잘 되는걸요? 태스크바 이외의 영역에서 전체화면으...
    • 한원희
      2002.08.09 08:41
      간단하게 GetSystemMetrics 함수를 이용한 방법이 있습니다. 요렇게 하면, 태스크 바를 제외한 데스크...
    • 박성훈
    • 2002.08.09 05:06
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.08.09 08:52
      XOR 연산을 어떻게 하느냐에 따라서 복잡하냐 그렇지 않느냐가 결정 되는데... 만약, '000001009' 문...
    • 박성훈
      2002.08.09 09:51
      답변 감사하구요. 정확하게 질문을 올리지 못해서 죄송합니다. 한번 더 봐주시길 바랍니다. 대상문...
    • 나옹이
    • 2002.08.09 04:37
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2002.08.09 05:03
      SQLExplorer에서 DEMO에 있는 animals Table에 Insert를 해보았습니다. 'aaa' 라고... 값이 입력이 되네...
    • 나옹이
      2002.08.09 05:36
      글세요...... 제가 원한 답변은 아닌데요........
    • 임형호
      2002.08.09 08:00
      테스트해보셨어요? 안된다면... parambyname 을 사용해보세요. with query do begin   clo...
    • 휴초보
      2002.08.10 03:23
      그래도 안된다면 #39를 아용헤 보세요. 전에 Oracle 사용할 때 #39를 사용했던 기억이 어렴풋이 나는것 같...
    • 고정섭
    • 2002.08.09 04:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.08.09 08:44
      비트 쉬프트를 위해서 델파이에는 shl과 shr 명령어를 제공합니다. b = a | (b << 8); b:=...
    • 고지범
      2002.08.09 19:46
      C 에서 타입이 extern "C" LONG WINAPI Command_1( LONG Address, LPCSTR SdBuff, LPBYTE RdBuff ) 이고, ...
    • 한원희
      2002.08.09 04:26
      호출 규칙 때문에 문제가 되는 것 같습니다. C 형 선언으로 봤을 때, 프로시저 선언을 다음과 같이 해...
    • 델사랑
    • 2002.08.09 03:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 휴초보
      2002.08.10 03:26
      ADO를 이용하는 방법이 있습니다. 먼제 AdoConnection에 해당 MDB를 지정한 후 Ado Table 혹은 Ado Quer...
    • KDDG_Jo
      2002.08.09 03:34
      포멧이 틀렸네여 아래와 같은 형식이여야만 형변환이 됩니다. MyDateTime := StrToDateTime('2002-08...
    • 스말(^___^)
      2002.08.09 05:30
      우선 답변 감사합니다.. 그런데 스트링 -> 데이터 타임이 아닌 데이터타임 -> 스트링 변환하는걸로 ...
    • 임형호
      2002.08.09 08:07
      FormatDateTime 은 datetime 형태를 일정한 포맷형태의 string으로 반환합니다. 도움말을 보시면 return ...
    • 김기현
    • 2002.08.09 03:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 전형식
      2002.08.13 08:25
      BDE에 설정한 정보들은 idapi.cfg에 저장됩니다. 읽어오는 BDE함수가 있던데.. 잘 생각이 안나네요 &...
    • 임상현
    • 2002.08.09 03:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2002.08.09 05:08
      화면에 갖다놓은 QuickRep를 더블클릭해보세요. Report Settings 라는 폼이 뜹니다. 옆에 Paper Size라...
    • KDDG_Jo
      2002.08.09 03:27
      속성창을 이용해서 조정하세요    QuickRep1.Page.PaperSize = Custom    Q...
    • KDDG_Jo
      2002.08.09 03:51
      Image1 = 원이미지 Image2 = 확대나 축소 이미지 Image2 를 저장하면 Image2의 크기의 그림파일이 만...
    • 이욱
      2002.08.09 04:54
    • 이승근
    • 2002.08.09 02:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2002.08.10 09:06
      안녕하세요. 제 답이 도움이 될지 의심스럽네요. 괜히 머리 싸매지 마시고 윈도 밀구 다시 깔아보...
    • 임상현
    • 2002.08.09 02:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.08.09 02:31
      Print 장수를 2장으로 설정하면 되지 않을까요? Unit QuickRep Description TCustomQuickRep...
    • 임상현
      2002.08.09 02:56
      고맙씀다.^^;
    • KDDG_Jo
      2002.08.09 02:25
      질문이 좀 난해 하내여 퀵레포트 인쇄시는 아래와 같이하면 됩니다. betin    Quic...
    • 이현철
      2002.08.09 02:27
      그냥, 문자열을 보내셔도 됩니다.. 클라이언트소켓에서 서버소켓으로 connection 한뒤 soket.sendtext('a...
    • 코난
    • 2002.08.09 01:26
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이현철
      2002.08.09 02:20
      제어판 -> 마우스 -> 포인터 에 가셔서 모래시계 포인터를 애니메이션 되는 마우스 포인터로 바꾸세...
    • 코난
      2002.08.09 02:37
      현철님 제어판에서 해보았는데.. 모래시계 애니메이션되는게 없는데..어케하져 참고로 윈도2000 서...
    • 이현철
      2002.08.09 02:54
      바로 위에 구성표에 보면, 몇가지 고를수 있게 되는데 저는 98인데.. 애니매이션 커서 있거든요?.. 있을텐...
    • 코난
      2002.08.09 03:14
      흑흑~~ 제가지금 질문한내용은요 ..? 델파이에서 실행될때 즉 많은양에 데이타를 가지고 올때 모래...
    • 최용일
      2002.08.09 10:08
      안녕하세요. 최용일입니다. 델파이에서 사용하는 커서들은 Screen.Cursors란 배열속성에 들어 있습니다....
    • 이석배
    • 2002.08.09 01:20
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김형수
      2002.08.09 02:06
      차라리 스트링 그리드의 rowcont를 하나씩 증가시켜주면 어떨까요. 처음에 스트링그리드의 rowcount를 2로...
    • 이석배
      2002.08.09 03:06
        제가 질문을 좀 잘못한 듯 하군요..   일단.. excel에 자료가 있잖습니까..? 그 ...
    • 박상기
      2002.08.09 05:05
            i:=xlsheet.rowcout;       &nb...
    • 이석배
      2002.08.09 10:21
        앓던 이가 빠진 느낌입니다. 정말 고맙습니다.   연동된 이후의 excel의 컨트...
    • 박기홍
    • 2002.08.09 01:15
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2002.08.09 00:00
      제가 보기네는 지금 사용할려고 하는 콤퍼넌트가 그리드에서 엑셀로 또는 쿼리내용을 엑셀로 넘기실려...
    • 햇살
      2002.08.09 00:50
      제가 코딩하는게 아니라 컴포넌트가 없어서 form이 들어오지 않는군요 꼭 이 컴포넌트를 설치해야만하는데...