OFFICE学习资料 | OFFICE资源下载 | OFFICE知识问答      
设为首页
加入收藏
联系站长
  当前位置:Office学院 >> Office >> 编程相关 >> 正文
在Delphi中操作Excel
[2006年10月26日]  点击数: 【字体: 】【双击滚屏
 
    在数据库应用软件的开发过程中,经常需要把数据转换成Excel文件,让用户作进一步的数据处理。而BorlandDelphi是开发数据库应用系统的常用工具,如何在Delphi中操作Excel呢?
     我们知道,在MicrosoftOffice软件中有一种内嵌的编程语言,即VBA,它是一种宏语言、VB的子集。利用它,你可以编写出功能强大的代码,如打开文件、修改数据、保存数据、设置字体等。另一方面,MicrosoftOffice软件中的宏能以VBA代码的形式记录下你的操作过程。因此借助宏操作,可以很轻松地实现某一功能,并把这些代码稍作修改嵌入到你的软件中。但是VBA的一个缺点是,它必需有MicrosoftOffice作平台,在哪里编写,必须在哪里执行。例如在Excel下编写的一段VBA代码,则它只有在Excel下才能运行。
     关于Excel中的VBA编程方法、Excel对象属性、方法说明可以在Office的安装(完全安装)目录下的VBAXL8.hlp帮助文件中找到。
     因此,只有把VBA代码嵌入到BorlandDelphi中,才能实现用Delphi操作Excel。
     下面,以Delphi为例,说明这种调用方法。
     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文件了。pp.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
   

我要提问
上一篇:如何用VFP控制EXCEL表格
下一篇:Excel、Access、VB的结合应用
最新文章
在Word中使用AutoCAD图形10/27
VFP+Excel+SQLServer实例讲解10/26
谈Excel对象在VB中的使用10/26
Excel、Access、VB的结合应用10/26
在Delphi中操作Excel10/26
如何用VFP控制EXCEL表格10/26
使用VB实现Excel自动获取外部数据10/26
VFP中Excel格式的输入方法10/26
热门文章
相关文章
VB两种操作Access数据库方法的比
从菜鸟成为Excel高手 之 IS函数
从菜鸟成为Excel高手 之 If函数
语音校对Excel“文本到语音”功能
在Excel中实现数据的快速录入
Word 快捷键使用操作技巧三则
WordXP和ExcelXP的使用极限
Excel帮你填写报名信息卡
office知识问答 | office资源下载
备案许可证号: 津ICP备06003561号
版权所有:Office学院 www.officeXY.com
OFFICE学院致力于成就华人社区最受欢迎的office办公软件学习园地;为大家提供word、excel、access、FrontPage、PowerPoint等Office各个系列产品的最全的教程、用法、技巧、方案;并竭力打造最方便的问题解答系统