📄 如何在delphi中操作excel.html
字号:
<html>
<head>
<title>如何在Delphi中操作Excel2001年02月16日 14:55</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
p { font-size: 12px; line-height: 22px}
-->
</style>
<style type="text/css">
<!--
.Name01 { font-size: 12px; line-height: 20px; color: #FF3300}
.Time01 { font-size: 9px; color: #666666}
-->
</style>
<style type="text/css">
<!--
.Name02 { font-size: 12px; color: #009999; line-height: 18px}
.Time02 { font-size: 9px; color: #666666; line-height: 9px}
.index01 { font-size: 12px; line-height: 20px; color: #FFFFFF}
.content { font-size: 12px; line-height: 24px}
.name00 { font-size: 24pt; color: #666666}
-->
</style>
<script language="JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="" background="back.gif">
<p>
<span class="name00">
<font color="#FF3300">如何在Delphi中操作Excel</font><br></span>
<span class="Name01">
<font color="#666666">(作者:穆永 2001年02月16日 14:55)</font></span><br><br>
<span class="content"> 在数据库应用软件的开发过程中,经常需要把数据转换成Excel文件,让用户作进一步的数据处理。而Delphi是开发数据库应用系统的常用工具,那么,如何在Delphi中操作Excel呢?
<BR><BR> 我们知道,在Microsoft Office软件中有一种内嵌的编程语言VBA,它是一种宏语言,利用它,你可以编写出功能强大的代码,如打开文件、修改数据、保存数据和设置字体等。另一方面,Microsoft Office软件中的宏能以VBA代码的形式记录下你的操作过程。因此借助宏操作,可以很轻松地实现某一功能,并把这些代码稍作修改嵌入到你的软件中。但是VBA也存在一个缺点,它必须有Microsoft Office作平台,在哪里编写,必须在哪里执行。例如在Excel下编写的一段VBA代码,则它只有在Excel下才能运行。因此,笔者的方法就是把VBA代码嵌入到Delphi中,从而实现用Delphi操作Excel。
<BR><BR> 下面,我们以Delphi程序为例,说明这种调用方法:
<BR><BR> Unit excel;
<BR><BR> interface
<BR><BR> uses
<BR><BR> Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ComObj;
<BR><BR> //ComObj是操作OLE对象的函数集
<BR><BR> type TForm1 =class(TForm)
<BR><BR> Button1: TButton;
<BR><BR> procedure Button1Click(Sender: TObject);
<BR><BR> private
<BR><BR> { Private declarations }
<BR><BR> public
<BR><BR> { Public declarations }
<BR><BR> end;
<BR><BR> var
<BR><BR> Form1: TForm1;
<BR><BR> implementation
<BR><BR> {$R *.DFM}
<BR><BR> procedure TForm1.Button1Click(Sender: TObject);
<BR><BR> var
<BR><BR> eclApp,WorkBook:Variant;
<BR><BR> //声明为OLE Automation 对象
<BR><BR> xlsFileName:string;begin
<BR><BR> xlsFileName:='ex.xls';
<BR><BR> try
<BR><BR> //创建OLE对象Excel Application与 WorkBook
<BR><BR> eclApp:=CreateOleObject('Excel.Application');
<BR><BR> WorkBook:=CreateOleobject('Excel.Sheet');
<BR><BR> except
<BR><BR> ShowMessage('您的机器里未安装Microsoft Excel。');
<BR><BR> Exit;
<BR><BR> end;
<BR><BR> try
<BR><BR> ShowMessage('下面演示:新建一个XLS文件,并写入数据,最后关闭它。');
<BR><BR> workBook:=eclApp.workBooks.Add;
<BR><BR> eclApp.Cells(1 , 1):='字符型';
<BR><BR> eclApp.Cells(2 , 1):='Excel文件';
<BR><BR> eclApp.Cells(1 , 2):='Money型';
<BR><BR> eclApp.Cells(2 , 2):=10.01;
<BR><BR> eclApp.Cells(1 , 3):='日期型';eclApp.Cells(2 , 3):=Date;
<BR><BR> WorkBook.saveas(xlsFileName);
<BR><BR> WorkBook.close;
<BR><BR> ShowMessage('下面演示:打开刚创建的XLS文件,并修改其中的内容,然后,由用户决定是否保存。');
<BR><BR> WorkBook:=eclApp.workBooks.Open(xlsFileName);
<BR><BR> eclApp.Cells(2 , 1):='Excel文件类型';
<BR><BR> if MessageDlg(xlsFileName+'文件已被修改,是否保存?',mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
<BR><BR> WorkBook.save
<BR><BR> else
<BR><BR> workBook.Saved := True; //放弃修改
<BR><BR> WorkBook.Close;
<BR><BR> eclApp.Quit;
<BR><BR> //退出Excel Application
<BR><BR> //释放VARIANT变量
<BR><BR> eclApp:=Unassigned;
<BR><BR> except
<BR><BR> ShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开,或系统错误。');
<BR><BR> WorkBook.close;
<BR><BR> eclApp.Quit;
<BR><BR> //释放VARIANT变量
<BR><BR> eclApp:=Unassigned;
<BR><BR> end;
<BR><BR> end;
<BR><BR> end.
<BR><BR> 经过上述操作过程后,我们就可以很放心地将数据库中的数据转换成Excel文件了。<BR><BR></span> <br>
<!-------------文章内容主体部分结束----->
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -