我要用ado操作excel数据表格,在设计阶段我用ado直接连接excel文件,但仅限于固定的文件,比如C:\data.xls。我现在想用打开对话框的方式,打开任意的excel数据表格进行操作,具体该如何实现?
谁能给出比较详细的说明和代码?

解决方案 »

  1.   

    if OpenDialog1.Execute then
      ShowMessage(OpenDialog1.FileName);
    //这样就可以利用打开文件对话框打开文件了,FileName包括了整个路径加文件名
      

  2.   

    然后用OpenDialog1.FileName替换你写死的那个文件名即可
      

  3.   

    var
        FilePath:string;   // 存放你打开的EXCEL文件路径
      OpenDlgData.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
      OpendlgData.Title:='导入Excel文件';
      OpendlgData.Filter:='Excel文件(*.xls)|*.xls';
      if (OpenDlgData.Execute) then
      begin
        FilePath:=OpenDlgData.FileName;
      end;  其他的你就自己弄了哈
      

  4.   

    采用“cuteant”的方法出错,提示为“不能更新。数据库或对象为只读”。
      

  5.   

    我想是不是可以打开这个文件,获得filename后,再把这个文件关掉?请问关掉这个文件该如何操作?
      

  6.   

    代码如下:(提示为“不能更新。数据库或对象为只读”)
    procedure TForm1.Button6Click(Sender: TObject);
    begin
    if opendialog1.Execute then
    begin
    ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=opendialog1.FileName;Extended Properties=excel 8.0;Persist Security Info=False';
    adoquery1.Active:=true;
    end;
    end;
      

  7.   

    procedure TForm1.Button6Click(Sender: TObject);
    begin
    if opendialog1.Execute then
    begin
    ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=opendialog1.FileName;Extended Properties=excel 8.0;Persist Security Info=False';ADOConnection1.Connected:=true;// 试试adoquery1.Active:=true;
    end;
    end;
      

  8.   

    procedure TForm1.Button6Click(Sender: TObject);
    begin
    if opendialog1.Execute then
    begin
    ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + opendialog1.FileName + ';Extended Properties=excel 8.0;Persist Security Info=False';
    adoquery1.Active:=true;
    end;
    end;