엑셀자료 불러오기를 하다가 제일 막혔던 부분이 바로 엑셀의 Record(Row)수를 구하는 거였습니다.
자료가 많은경우 ProgressBar를 이용하면 보기 좋겠죠.
이 자료는 대부분 참조한 거구요. Count수 구하는것은 아래처럼 하시면 될것 같습니다.
허접하니까 여기저기 살붙여서 사용하세요

procedure TActiveFormX.BitBtn1Click(Sender: TObject);
var
  ExcelApp, ExcelBook, ExcelSheet : Variant;
  I, J : Integer; // 순환변수  
begin
  //엑셀이 설치되었있을 경우만 가능
  try
    //엑셀을 실행
    ExcelApp := CreateOLEObject('Excel.Application');
  except
    ShowMessage('Excel이 설치되어 있지 않습니다!!!');
    Exit;
  end;

  Try
    ExcelApp.Visible := False;
    ExcelApp.DisplayAlerts := False;
    //엑셀 통합문서 열기
    if OpenDialog1.Execute then
    begin
      ExcelBook := ExcelApp.WorkBooks.Open(OpenDialog1.FileName);
      ExcelBook := ExcelApp.WorkBooks.item[1]; //워크 쉬트 설정
      //일단 개별문서는 sheet1으로 고정
      ExcelSheet := ExcelBook.Worksheets.Item[1];

      //StringGrid 초기화 (Title은 고려하지 않았습니다.)

      StringGrid1.RowCount := ExcelSheet.UsedRange.Rows.count;
      StringGrid1.ColCount := ExcelSheet.UsedRange.Columns.count;

      For I := 1 to ExcelSheet.UsedRange.Rows.count do
        For J := 1 to ExcelSheet.UsedRange.Columns.count do
           StringGrid1.Cells[J,I] := vartostr(ExcelSheet.Cells[I,J]);  //스트링그리드에 뿌리기
      ExcelApp.WorkBooks.Close;
      ExcelApp.quit;
      ExcelApp := unassigned;
    end;
  Except
    on err:exception do
    begin
      ExcelApp.WorkBooks.Close;
      ExcelApp.quit;
      ExcelApp := unassigned;
      ShowMessage('작업이 취소되었습니다. Data확인요망-'+err.message);
    end;
  end;
  ShowMessage(IntToStr(ExcelSheet.UsedRange.Rows.count) + '건의 자료를 변환하였습니다');
end;

Posted by 나비:D
:
BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
---------------------------.. (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total :
Today : Yesterday :