我用ADOCONNECTION连到了excel文件,
我想在DBGrid中显示某个工作表,但是我要怎么知道这个EXCEL文件中有哪些工作表呢?
简单说就是怎么样获取工作表名,
使用ADOCONNECTION,ADOquery,

解决方案 »

  1.   

    没有AdoQuery的例子,给你个ole读取的例子吧
    procedure TfrmCalDate.btnOpenClick(Sender: TObject);
    var
      ExcelApp:Variant;
      SheetCount: Integer;
      i, j: Integer;
      tmpStr: String;
    begin
      OpenDialog1.Execute ;
      if OpenDialog1.FileName = '' then Exit;
      ExcelFileName := OpenDialog1.FileName ;  ExcelApp := CreateOleObject('Excel.Application');
      ExcelApp.WorkBooks.Open(ExcelFileName);
      SheetCount := ExcelApp.WorkSheets.Count;
      lvSheet.Clear ;
      for i := 1 to  SheetCount do
      begin
        lvSheet.Items.Add.Caption := ExcelApp.WorkSheets[I].Name;
      end;  ExcelApp.WorkBooks.Close;
      ExcelApp.Quit;    
    end;
      

  2.   

    连接后,可以用ADOConnection1.GetTableNames()试试,能否获得列表,每个sheet就好像是一个table
      

  3.   

    sl:= tstringlist.create;
    ADOConnection1.GetTableNames(sl,true);
    showmessage(sl.text);
      

  4.   

    个人建议用cxGrid 你会发现 方便