怎么在delphi中读取Excel数据 转
2017-03-17 · 知道合伙人软件行家
在使用 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 作为一个优秀的操作 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 文件,读、写等操作简便;缺点:第三方控件,需要自行安装 。
2016-07-25
1、用delphi的office组件,这种方式访问速度快;
2、用通用目标对象 comobj ,这种方式速度慢些。
两种方法网上均有示例。可查询网络。
http://blog.csdn.net/fhfanxin/article/details/3188580