代码e5a48de5" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何在<em>DELPHI</em>中调用EXCEL中的函数或宏

如何在<em>DELPHI</em>中调用EXCEL中的函数或宏

作者:乔山办公网日期:

返回目录:excel表格制作


Excel的VBA有公式这个属性啊,取出来就是公式。
看看是不是Formula这个属性。
没有查,不确定。

代码e5a48de588b6e799bee5baa6338:
procedure TForm1.Button1Click(Sender: TObject);
var
MyWorkBook: _WorkBook;
FileName: string;

begin
ExcelApplication1.Connect;
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Caption := ‘应用程序调用 Microsoft Excel‘;

FileName:=‘e:\temp\book1.xls‘;
//由于我又时候运行需要一个0,有所时候2个,
//如果报参数不匹配的错误,可以删掉或者添加后面0 的个数
MyWorkBook:= ExcelApplication1.Workbooks.Open(FileName, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0,0,0);
ExcelWorkbook1.ConnectTo(MyWorkBook);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _WorkSheet);

//调用工作簿中已经存在的名称为 My 的宏
ExcelApplication1.Run(‘My‘);
end;

在使用 Delphi 语言进行软件应用开发过程中,常见的一种应用是操纵 excel 进行读取、生成报表的功能开发,在此总结一下常用的三种方法及其优缺点:

一、使用 COM 方法

此方法的原理,是通过 CreateOleOjbect 函数来调用 windows 系统中注册的 Excel 信息,来建立对 Excel.Application 的引用来操作 Excel。示例代码如下:

procedure ReadExcels;
var
  i,j: Integer;
begin
  exlApp := CreateOleObject('Excel.Application');
  exlApp.Visible := False;
  exlApp.WorkBooks.Open(fsFileName);
 
  iRowCount := exlApp.ActiveSheet.UsedRange.Rows.Count;
  iColCount := exlApp.ActiveSheet.UsedRange.Columns.Count;
   
  for i := 2 to iRowCount do
   for j:=1 to icolcount do 
   begin
     ShowMessage(exlApp.workbooks[1].sheets[1].cells[i,j]); 
   end;
end;

优点:可以动态创建,基本不用管软件运行电脑安装的 Excel 版本都能运行;缺点:需要安装 Excel,程序编写过程中缺乏函数、成员等提示,运行时刻出错不易调试。 

二、使用 delphi 自带的 Office 控件

此方法与方法一原理类似,区别在于将 Excel.Application 等封装成控件。示例代码如下:

ExcelApplication1.Workbooks.Open ('c:\test.xls',
  EmptyParam , EmptyParam , EmptyParam , EmptyParam ,
  EmptyParam , EmptyParam , EmptyParam , EmptyParam ,
  EmptyParam , EmptyParam , EmptyParam , EmptyParam , 0);
ExcelApplication1.WorksSheets['Sheet2'] .Activate;
ExcelApplication1.Cells[1,4].Value := 'test';

优点:程序编写过程中可以得到函数、成员等提示;缺点:需要安装 Excel,不同的 Excel 版本,需要有针对性的建立组件。 

三、使用第三方控件

XLSReadWrite 作为一个优秀e799bee5baa6e79fa5e98193e78988e69d83364的操作 Excel 的控件,提供了简便快捷读取、写入Excel文件的好办法。示例代码:

var
  s:string;
  xls:TXlsReadWrite;
begin
  Xls.filename:='c:\123.xls';
  xls.read;
  s:=xls.sheets[0].asstring[0,0];
  showmessage(s);
  xls.sheets[0].asstring[0,0]:='新闻界';
  xls.savetofile('c:\234.xls');
end;

优点:可在本机未安装 excel 的前提下读取 Excel 文件,读、写等操作简便;缺点:第三方控件,需要自行安装 。



推荐你一本书Delphi4大大入门到精晓(电子工业出版社),90大大元。经由过程ole主动化,当应用office97时,导入excel8.olb类型库。象delphi输入这些类型库后,可不雅察包含所有接口的Pascal单位。这种办法相当借居应用Excel!

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网