ADO连接EXCEL的时候,DATASET在打开EXCEL的时候,DATASET.CommandText要如何设置才正确啊?
就是如何才能知道EXCEL文件的sheet的名称?

解决方案 »

  1.   

    用ADOStrocedProc控件好点:CREATE PROCEDURE PROCtoExcel 
    @EXN varchar(250)
     AS
    --   SET ANSI_NULLS ON 
    --   SET ANSI_WARNINGS ON
       delete from BExcel
       select * into #temp1 from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\Excel2005\28.xls";User ID=Admin;Password=;Extended properties=Excel 5.0;Persist Security Info=false')...[sheet1$]
       insert into BExcel(orderNO,ProductNO,ProductName,specification,Unit,Quantity,finished,Re)  select 序号 as orderNO,货号 as ProductNO,品名 as ProductName,规格 as specification,单位 as Unit,数量 as Quantity,完成 as finished,备注 as Re from #temp1
       select orderNO,ProductNO,ProductName,specification,Unit,Quantity,finished,Re from BExcel
    GO
      

  2.   

    CommandText:='select * from [sheet1$]'
      

  3.   

    with TADODataSet.Create(Self)  do
      Try
        ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Book1.xls;Extended Properties=excel 8.0;Persist Security Info=False';
        CommandText:='select * from [Sheet1$]';
        Open;
        DoSomething;
        Close;
      finally
        Free;
      end;    // with
      

  4.   


    var
      s: TStrings;
    begin
      s := TStringList.Create;
      ADOConnection1.GetTableNames(s);//使用该方法获取表名称
      showmessage('select * from [' + s[0] + ']');//为了安全表名称要加 [] 
    end;
      

  5.   

    用ADODataSet控件
    ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\My Documents\Supplier.xls;Extended Properties=Excel 8.0;Persist Security Info=False'CommandText := 'select ACNAME, ACNAME2, ACNO, ACTYPE, ADD11, ADD12, ADD13, ADD14, ADD21, ADD22, ADD23, ADD24, ADD31, ADD32, ADD33, ADD34, ATTN1, ATTN2, ATTN3, CUR, DISTRICT, EMAIL, FAX1, FAX2, FAX3, PER_UNIT, START_DATE, TEL1, TEL2, TEL3, TERMS, WEB from [Supplier$]'//注意表名要加:'[]'