如何在Delphi中操作Excel

2016-01-29 14:14 80 1 收藏

如何在Delphi中操作Excel,如何在Delphi中操作Excel

【 tulaoshi.com - Delphi 】

 

  在数据库应用软件的开发过程中,经常需要把数据转换成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对象的函数集

  type TForm1 =class(TForm)

  Button1: TButton;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/delphi/)

  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.

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/delphi/)

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

 

来源:http://www.tulaoshi.com/n/20160129/1492822.html

延伸阅读
标签: 电脑入门
早于 Microsoft Excel 2002 的 Excel 版本 在早于 Excel 2002 的版本的 Excel,公式计算基于工作表的工作表,从 Excel 工作簿的 Sheet1 开始执行。在工作表 Sheet1 上完成计算后,Excel 会计算 Sheet2 上的公式直到计算工作簿的所有工作表上所有公式。 此进程工作正常,只要引用单元格和从属单元格处于同一工作表。如果引用单元格和从属单元...
标签: excel
如何在Excel中数据分列整理   怎么在Excel中冻结行列标题?   怎么在Excel中tulaoShi.com添加常用文件夹? &ntulaoshibsp; 怎么在Excel中插入超级链接  
标签: 电脑入门
一般情况下在Excel中制作表头,都把表格的第一行作为表头,然后输入文字。不过,这样的表头比较简单,更谈不上斜线表头了。能不能在Excel中可以实现斜线表头,下面就是具体的方法: 由于作为斜线表头的单元格都要比其他单元格大,所以首先将表格中第一个单元大小调整好。然后单击选中单元格,单击格式→单元格命令,弹出单元格格式窗口,选...
标签: excel
如何在Excel中获取网络数据   如何在Excel中添加多个视图?   如何在Ex(图老师整理Tulaoshi.com)cel中设置打印区域   怎么给Excel中的数据添加单位?  
标签: excel
如何在Excel中添加多个视图?   怎么给Excel中的数据添加单位?   www.Tulaoshi.com怎么给Excel数据表添加页眉页脚?   怎么设置Excwww.tulaoshi.comel文件只读密码   怎么防止Excel数据重复输入?   怎么设置Excel标签颜色  (www.tulaoshi.com) 如何将Excel公式结果转为数值  

经验教程

211

收藏

35
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部