当前位置:首页 > 网络编程 > 软件语言 > DELPHI > 如何在Delphi中操作Excel

如何在Delphi中操作Excel

点击次数:65 次 发布日期:2008-11-09 08:43:20 作者:源代码网
源代码网推荐
广告载入中
 在数据库应用软件的开发过程中,经常需要把数据转换成Excel文件,让用户作进一步的数据处理。而Delphi是开发数据库应用系统的常用工具,那么,如何在Delphi中操作Excel呢?

  我们知道,在Microsoft Office软件中有一种内嵌的编程语言VBA,它是一种宏语言,利用它,你可以编写出功能强大的代码,如打开文件、修改数据、保存数据和设置字体等。另一方面,Microsoft Office软件中的宏能以VBA代码的形式记录下你的操作过程。因此借助宏操作,可以很轻松地实现某一功能,并把这些代码稍作修改嵌入到你的软件中。但是VBA也存在一个缺点,它必须有Microsoft Office作平台,在哪里编写,必须在哪里执行。例如在Excel下编写的一段VBA代码,则它只有在Excel下才能运行。因此,笔者的方法就是把VBA代码嵌入到Delphi中,从而实现用Delphi操作Excel。
  下面,我们以Delphi程序为例,说明这种调用方法:

源代码网整理以下  Unit excel;

源代码网整理以下  interface

源代码网整理以下  uses

源代码网整理以下  Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs, StdCtrls,ComObj;

源代码网整理以下  //ComObj是操作OLE对象的函数集

软件开发网 www.mscto.com

源代码网整理以下  type TForm1 =class(TForm)

源代码网整理以下  Button1: TButton;

源代码网整理以下  procedure Button1Click(Sender: TObject);

源代码网整理以下  private

源代码网整理以下  { Private declarations }

源代码网整理以下  public

源代码网整理以下  { Public declarations }

源代码网整理以下  end;

源代码网整理以下  var

源代码网整理以下  Form1: TForm1;

源代码网整理以下  implementation

源代码网整理以下  {$R *.DFM}

源代码网整理以下  procedure TForm1.Button1Click(Sender: TObject);

源代码网整理以下  var 软件开发网 www.mscto.com

源代码网整理以下  eclApp,WorkBook:Variant;

源代码网整理以下  //声明为OLE Automation 对象

源代码网整理以下  xlsFileName:string;begin

源代码网整理以下  xlsFileName:=‘ex.xls‘;

源代码网整理以下  try

源代码网整理以下  //创建OLE对象Excel Application与 WorkBook

源代码网整理以下  eclApp:=CreateOleObject(‘Excel.Application‘);

源代码网整理以下  WorkBook:=CreateOleobject(‘Excel.Sheet‘);

源代码网整理以下  except

源代码网整理以下  ShowMessage(‘您的机器里未安装Microsoft Excel。‘);

源代码网整理以下  Exit;

源代码网整理以下  end;

源代码网整理以下  try

软件开发网 www.mscto.com

源代码网整理以下  ShowMessage(‘下面演示:新建一个XLS文件,并写入数据,最后关闭它。‘);

源代码网整理以下  workBook:=eclApp.workBooks.Add;

源代码网整理以下  eclApp.Cells(1 , 1):=‘字符型‘;

源代码网整理以下  eclApp.Cells(2 , 1):=‘Excel文件‘;

源代码网整理以下  eclApp.Cells(1 , 2):=‘Money型‘;

源代码网整理以下  eclApp.Cells(2 , 2):=10.01;

源代码网整理以下  eclApp.Cells(1 , 3):=‘日期型‘;eclApp.Cells(2 , 3):=Date;

源代码网整理以下  WorkBook.saveas(xlsFileName);

源代码网整理以下  WorkBook.close;

源代码网整理以下  ShowMessage(‘下面演示:打开刚创建的XLS文件,并修改其中的内容,然后,由用户决定是否保存。‘); 软件开发网 www.mscto.com

源代码网整理以下  WorkBook:=eclApp.workBooks.Open(xlsFileName);

源代码网整理以下  eclApp.Cells(2 , 1):=‘Excel文件类型‘;

源代码网整理以下  if MessageDlg(xlsFileName ‘文件已被修改,是否保存?‘,mtConfirmation, [mbYes, mbNo], 0) = mrYes then

源代码网整理以下  WorkBook.save

源代码网整理以下  else

源代码网整理以下  workBook.Saved := True; //放弃修改

源代码网整理以下  WorkBook.Close;

源代码网整理以下  eclApp.Quit;

源代码网整理以下  //退出Excel Application

源代码网整理以下  //释放VARIANT变量

源代码网整理以下  eclApp:=Unassigned;

源代码网整理以下  except

源代码网整理以下  ShowMessage(‘不能正确操作Excel文件。可能是该文件已被其他程序打开, 或系统错误。‘);

源代码网整理以下  WorkBook.close;

软件开发网 www.mscto.com

源代码网整理以下  eclApp.Quit;

源代码网整理以下  //释放VARIANT变量 软件开发网 www.mscto.com

源代码网整理以下  eclApp:=Unassigned;

源代码网整理以下  end;

源代码网整理以下  end;

源代码网整理以下  end.

软件开发网 www.mscto.com

源代码网整理以下  经过上述操作过程后,我们就可以很放心地将数据库中的数据转换成Excel文件了。


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华