用ADO连接Excel时,可以对Excel进行读写操作码?我不是很懂,哪位大侠知道的话,给的详细点,不是我不给分,实在是没分了

解决方案 »

  1.   

    ado连接excel然后使用create table 创建sheet,insert 语句来插入记录,这样可以吧,你试试
      

  2.   

    我现在用ADOQuery,我现在要做的是:通过读前一列的值,来计算下一列的值,并写入,可是老是报错
    代码:procedure TForm1.BitBtn5Click(Sender: TObject);
    var
     sql_1:String;
     new_1:String;
     str1:String;
     str2:String;
     new_2:Single;
     float:Single;
     int1:Integer;
     int2:Integer;
    begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    sql_1:='select * from  [线路水平数据$] where 线路要素点(线段首段)=QD';
    ADOQuery1.SQL.Add(sql_1);
    ADOQuery1.Open;new_1:=ADOQuery1.fieldbyname('夹直线方向角(输入)').AsString;
    str1:=Copy(new_1,5,2);
    str2:=Copy(new_1,3,2);
    int1:=StrToInt(str1);
    int2:=StrToInt(str2);
    float:=(int2*60+int1)/3600;
    new_2:=ADOQuery1.fieldbyname('夹直线方向角(度)').AsFloat;
    new_2:=float;ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add(sql_1);
    ADOQuery1.ExecSQL;ADOQuery1.active:=false;
    ADOQuery1.active:=true;
    ADOQuery1.active:=false;
    ADOQuery1.active:=true;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if OpenDialog1.Execute then
      begin
        Edit1.Text:=OpenDialog1.FileName;
        ADOConnection1.Close;
        ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog1.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
        ADOConnection1.LoginPrompt:=false;
        try
          ADOConnection1.Open;
          try
            Adoquery1.Close;
            Adoquery1.SQL.Clear;
            Adoquery1.SQL.Add('create table [sheet1$](');
            Adoquery1.SQL.Add('sid varchar(20),sname varchar(20))');
            Adoquery1.ExecSQL;
          except
            showmessage('创建表失败!');
            exit;
          end;      try
            Adoquery1.Close;
            Adoquery1.SQL.Clear;
            Adoquery1.SQL.Add('select * from [sheet1$]');
            Adoquery1.Open;
            Adoquery1.Append;
            Adoquery1.FieldByName('sid').AsString:='fdsa';
            Adoquery1.FieldByName('sname').AsString:='fdsa';
            Adoquery1.Post;
            showmessage('插入数据成功!');
          except
            showmessage('插入数据出错!');
          end;
        except
          Application.MessageBox('连接失败','提示',MB_ICONINFORMATION);
        end;
      end;
    end;
      

  4.   

    你这个是从一个Edit1.Text读数据到Excel里,我要的是通过读前一列的值,来计算下一列的值,并写入;不过还是谢谢你了