各位大哥,我想问一下,如何用Delphi7.0 连接excel进行操作,我是想用delphi来显示和操作excel表中的数据,但不使用excel本身的功能,比如:用delphi7.0对excel表进行查找替换功能,还有如何连接显示excel表中的数据,请大家帮帮忙!

解决方案 »

  1.   

    操作EXCEL方法
    1、OLE接口,CreateOleObject
    2、ADO访问,把Excel表当作一张数据库表来操作
    3、直接操作二进制文件或XML文件,但需要清楚Excel的格式规范,二进制格式是没有公开的1、2种方法使用最多,具体方法可搜老帖
      

  2.   


    procedure TForm1.Button5Click(Sender: TObject);
    var
      ExcelApp:Variant;
    begin
      ExcelApp:=CreateOleObject('Excel.Application');
      ExcelApp.workbooks.open(ExtractFilePath(ParamStr(0))+'地址.xls');
      //可以循环读取数据
      Edit3.Text:=ExcelApp.Cells[2,3];
      Edit4.Text:=ExcelApp.Cells[3,3];
      ExcelApp.quit;
    end;
      

  3.   

    要先引用单元
    uses
      ExcelXP, OleServer,ComObj;
      

  4.   

    操作EXCEL方法
    1、OLE接口,CreateOleObject
    2、ADO访问,把Excel表当作一张数据库表来操作3、直接操作二进制文件或XML文件,但需要清楚Excel的格式规范,二进制格式是没有公开的1、2种方法使用最多,具体方法可搜老帖
    我用第二种方法,直接把excel文件当数据库搞。
      

  5.   

    但是我连需要用到什么控件都不是很清楚吖.我用ado试过.但第一次成功后。后面的老是会出错的吖.
      

  6.   

    用ADO连接Excel,必须在连接字符串中的数据链接属性中,将“所有”页里的Extended Properties值设为:Excel 8.0。你出现的报错,估计就是连接字符串没设好。
      

  7.   


    这个我知道,但问题是我想替换我需要的字段,而现在我只做到如:用abd-153替换ABC-153,却还没做到用abd-153替换“ABC-153合成物质”中的ABC-153,变成abd-153合成物质,请问各位大哥有什么方法教教小弟吖
      

  8.   

    "abd-153"是字段名还是字段值?
      

  9.   


    是字段值吖
    如:
    产品名称           产品数量
    abc-153           1596
    ABC-153合成物质     536
      

  10.   

    先截取出来,再替换掉,最后合并回去。
    思路如下:
    1、“ABC-153合成物质”=“ABC-153”+“合成物质”
    2、“ABD-153”《=“ABC-153”
    3、“ABD-153合成物质”《=“ABD-153”+“合成物质”
      

  11.   

    AnsiReplaceText(ADOQuery1.FieldByName('产品名称').AsString,'abc-153','abd-153');
    //
    函数 function AnsiReplaceText(const AText, AFromText, AToText: string): string; $[StrUtils.pas
    功能 返回字符串AText中用子串AFromText替换成子串AToText的结果
    说明 不区分大小写
    参考 function SysUtils.StringReplace; type SysUtils.TReplaceFlags
    例子 Edit4.Text := AnsiReplaceText(Edit1.Text, Edit2.Text, Edit3.Text);
    //