微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题在Delphi编程中使用Excel
栏目软件世界
作者穆永
发布2001年5期
  在数据库应用软件的开发过程中,经常需要把数据转换成Excel文件,让用户做进一步的数据处理。而Delphi是开发数据库应用系统的常用工具,如何在Delphi中操作Excel呢?
  在Microsoft Office软件中有一种内嵌的编程语言,即VBA,它是VB的子集。利用它你可以编写出功能强大的代码,如打开文件、修改数据、保存数据、设置字体等(关于Excel中的VBA编程方法、Excel对象属性、方法说明可以在Office的安装目录下的VBAXL8.hlp帮助文件中找到)。另一方面,Microsoft Office软件中的宏能以VBA代码的形式记录下你的操作过程。因此借助宏操作可以很轻松地实现某一功能,并把这些代码稍作修改嵌入到你的软件中。但是VBA的一个缺点是:它必须在Microsoft Office平台上才能运行。因此,只有把VBA代码嵌入到Delphi中,才能实现用Delphi操作Excel。
  下面举例说明这种调用方法。
  Unit excel;
  interface
  uses
  Windows,Messages,SysUtils,Classes,Graphics,
  Controls,Forms,Dialogs,StdCtrls,ComObj;{ComObj是操作OLE对象的函数集}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
  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
  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文件,并修改其中的内容。然后,由用户决定是否保存。');
  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;
  eclApp.Quit;
  {释放VARIANT变量}
  eclApp=Unassigned;
  end;
  end;
  end.
  了解上述操作过程后,我们可以很容易地将数据库中的数据转换成Excel文件了。