如何在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文件了。 源代码网推荐 源代码网供稿. |
