怎么在delphi中读取Excel数据 转

 我来答
windblast
2017-03-17 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13623
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

在使用 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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式