不知道DELPHI有没有这样的控件,能直接将EXCEL导入到DBGRID里,请高手指教。

解决方案 »

  1.   

    可以直接通过Adoquery连接Excel
    Adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog1.FileName+';'+'Extended Properties=Excel 8.0;Persist Security Info=False';
      

  2.   

    数据库用的是ORACLE,DELPHI里是用TCLIENTDATASET连接数据库的,有办法将EXCEL导入吗?有办法的话请说的详细点,这方面我一点都不懂。
      

  3.   

    'Select * Into [Excel 8.0;Database='+FilePath+FileName+'].['+sheetName+'] from '+Sqlstr;
      

  4.   

    请问rcaicc(√(没完没了)) ,Sqlstr是什么?sheetName该怎么填?
      

  5.   

    你先看看Excel文件导入StringGrid 再做EXCEL TO  DBGRID就不能了  
    一、 新建一项目,从控件栏servers中分别选取控件:excelapplication、excelworkbook1、excelworksheet,放到主窗体from1中,并加入stringgrid、三个按钮、五个显示字段内容的EDIT、二个操作显示记录的label、一个用于打开EXCEL电子表格的控件opendialog等,如下图所示:二、选择excel表'按钮,用于打开EXCEL文件,其代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var i,j:integer;
    begin
    opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
    opendialog1.Execute;
    Try
    ExcelApplication1.Connect;//EXCEL应用程序
    Except
    MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
    Abort;
    End;
    ExcelApplication1.Visible[0]:=True;
    ExcelApplication1.Caption:='Excel Application';
    try 
    excelapplication1.Workbooks.Open(opendialog1.FileName,
    null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的EXCEL 文件
    except
    begin
    ExcelApplication1.Disconnect;//出现异常情况时关闭
    ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');
    exit;
    end;
    end;
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接
    ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与Excelworkbook1建立连接 
    //开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCEL
    for i:=1 to 1000 do//最大取值1000
    for j:=1 to 6 do
    begin
    if trim(excelworksheet1.cells.item[i+1,1])<>'' then
    begin
    stringgrid1.rowCount:=i+1;
    stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
    end
    else
    begin
    label3.caption:=inttostr(i-1);
    ExcelApplication1.Disconnect;
    ExcelApplication1.Quit;
      

  6.   

    从后台导吧,为什么要在DBGRID里导呢?
      

  7.   

    抱歉,很久没来了'Select * Into [Excel 8.0;Database='+FilePath+FileName+'].['+sheetName+'] from '+Sqlstr;SheetName是excel的具体什么页,一般默认的都是“sheet1”
    sqlstr 是一个查询的sql语句,比如:select * from table 或者直接写成表名,把整表导出