Q&A

  • DBGrid에서 엑셀로 자료내릴때 말이죠~
안녕하세요~

저번에 올린건데 다시 올립니다요~





제가 DBGrid에 있는거 엑셀루 내려 받고 있거든요..

근데..

258행이 되니까 Eoleexception 'OLE error 800A03EC' 라는 에러가 나네요~

이거 어케 해결해야죠~?

258행을 넘기질 못하니..



흑흑흑..

제 능력의 한계를 느낍니다~

고수님들 도와주십시요~

그럼 즐건 하루되십시요~



begin

ExcelAppl := GetActiveOLEObject('Excel.Application')

ExcelAppl.Workbooks.add;



ExcelAppl.Visible := True ;



try



with pv_Grid.DataSource.DataSet do

begin

//data-aware 컴포넌트들의 화면출력을 disable시킴

DisableControls;



//현재 레코드 포인터 저장

lb_mark := GetBookmark;



li_bookcnt := ExcelAppl.workbooks.count ;

lv_Column := ExcelAppl.Workbooks[li_bookcnt].WorkSheets[1].Columns ;



First;

while not EOF do

begin

inc(li_row);



//DataType이 문자열일경우

if Fields[1].DataType = ftString then

lv_Column.Columns[li_row - 2].Style.NumberFormatLocal := '@' ;

--------------------------------------------------------------

===> 요기서 트레이스가 걸려서 에러가 났어요~



for li_col := 0 to pv_Grid.Columns.Count - 1 do

ExcelAppl.Cells[li_row, li_col + 1].formula :=

vartostr(pv_Grid.Columns[li_col].Field.Value);

Next;

end;



GotoBookmark(lb_mark);

EnableControls;

end;



except

on e : exception do



if e is Eolesyserror then

begin

Application.MessageBox('서버와의 연결에 실패했거나 데이타베이스와의

연결문제가 발생했습니다'

,'알림' ,MB_OK ) ;

exit;

end;

end;



1  COMMENTS
  • Profile
    이만준 2000.02.16 02:46


    안녕하세요..



    뭐땀시 그렇게 많은 컬럼을 사용하는지 모르겠지만..

    엑셀에서 지원하는 최대행수가 256 행이네요..

    제꺼 엑셀 버젼이 엑셀 97 이네요...

    프로그래밍 문제가 아니라 엑셀문제(?)인 것 같네요..



    기럼..





    김지현 wrote:

    > 안녕하세요~

    > 저번에 올린건데 다시 올립니다요~

    >

    >

    > 제가 DBGrid에 있는거 엑셀루 내려 받고 있거든요..

    > 근데..

    > 258행이 되니까 Eoleexception 'OLE error 800A03EC' 라는 에러가 나네요~

    > 이거 어케 해결해야죠~?

    > 258행을 넘기질 못하니..

    >

    > 흑흑흑..

    > 제 능력의 한계를 느낍니다~

    > 고수님들 도와주십시요~

    > 그럼 즐건 하루되십시요~

    >

    > begin

    > ExcelAppl := GetActiveOLEObject('Excel.Application')

    > ExcelAppl.Workbooks.add;

    >

    > ExcelAppl.Visible := True ;

    >

    > try

    >

    > with pv_Grid.DataSource.DataSet do

    > begin

    > //data-aware 컴포넌트들의 화면출력을 disable시킴

    > DisableControls;

    >

    > //현재 레코드 포인터 저장

    > lb_mark := GetBookmark;

    >

    > li_bookcnt := ExcelAppl.workbooks.count ;

    > lv_Column := ExcelAppl.Workbooks[li_bookcnt].WorkSheets[1].Columns ;

    >

    > First;

    > while not EOF do

    > begin

    > inc(li_row);

    >

    > //DataType이 문자열일경우

    > if Fields[1].DataType = ftString then

    > lv_Column.Columns[li_row - 2].Style.NumberFormatLocal := '@' ;

    > --------------------------------------------------------------

    > ===> 요기서 트레이스가 걸려서 에러가 났어요~

    >

    > for li_col := 0 to pv_Grid.Columns.Count - 1 do

    > ExcelAppl.Cells[li_row, li_col + 1].formula :=

    > vartostr(pv_Grid.Columns[li_col].Field.Value);

    > Next;

    > end;

    >

    > GotoBookmark(lb_mark);

    > EnableControls;

    > end;

    >

    > except

    > on e : exception do

    >

    > if e is Eolesyserror then

    > begin

    > Application.MessageBox('서버와의 연결에 실패했거나 데이타베이스와의

    > 연결문제가 발생했습니다'

    > ,'알림' ,MB_OK ) ;

    > exit;

    > end;

    > end;

    >