Q&A

  • Excel의 파일을 델파이 String그리드에 뿌려줄때 궁금점...
게시판을 검색하였지만 Excel의 행과 열의 갯수를 얻는방법이 없습니다.

알고 게시는 고수님 제발 부탁드립니다.



var

i : integer;

j : integer;

begin

i := //엑셀의 행의갯수 얻는방법;

j := //엑셀의 열의갯수 얻는방법;;

XlApp := CreateOleObject('Excel.Application');

XlApp.WorkBooks.Open('c:workdata.xls');

for i := 1 to i do

begin

for j := 1 to j do

stringgrid1.Cells[i, j] := XlApp.cells[j, i] ;

end ;

XlApp.quit ;

end;



1  COMMENTS
  • Profile
    stoney 2001.09.05 02:55
    접근 방법을 좀 다르게 생각해보면 될꺼 같네요..



    ADO를 사용하면 엑셀 파일을 테이블 열듯이 불러 들일 수 있거든요..



    다음 코딩 참고해 보세요..



    procedure TForm1.Button1Click(Sender: TObject);

    var

    i, j: integer;

    begin

    if OpenDialog1.Execute then

    with ADOQuery1 do

    begin

    close;

    ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +

    OpenDialog1.FileName + ';Extended Properties=Excel 8.0;Persist Security Info=False';

    SQL.Clear;

    SQL.Text := 'SELECT * FROM [Sheet1$]';

    open;

    for i := 1 to Fields.Count do

    begin

    for j := 1 to RecordCount do

    stringgrid1.Cells[i, j] := XlApp.cells[j, i] ;

    end ;



    end;

    end;



    이런식으로 처리하면 될꺼 같네요..



    직접 코딩해본게 아니라 오류날 수도 있겠네요..



    임혁재 wrote:

    > 게시판을 검색하였지만 Excel의 행과 열의 갯수를 얻는방법이 없습니다.

    > 알고 게시는 고수님 제발 부탁드립니다.

    >

    > var

    > i : integer;

    > j : integer;

    > begin

    > i := //엑셀의 행의갯수 얻는방법;

    > j := //엑셀의 열의갯수 얻는방법;;

    > XlApp := CreateOleObject('Excel.Application');

    > XlApp.WorkBooks.Open('c:workdata.xls');

    > for i := 1 to i do

    > begin

    > for j := 1 to j do

    > stringgrid1.Cells[i, j] := XlApp.cells[j, i] ;

    > end ;

    > XlApp.quit ;

    > end;

    >