精品主页 | 软件下载 | 系统下载 | 精品导航| 精彩图片 | 转帖工具 | 版主申请 | 影视下载
发新话题
打印

利用Delphi 5中调用Excel 97

利用Delphi 5中调用Excel 97

  


                  ---- 在Delphi 5中简单地封装了一组Microsoft Office自动化对象(Automation servers)。它使得我们很容易地把Office中的应用程序(Word, Excel, Powerpoint, Outlook and Access等)当作一个com应用服务器进行控制。在Delphi 5中已经带了Word与Powerpoint的例子,因为Excel的调用与这两个应用服务器的调用略有不同,所以本人根据这两个例子写了个Excel 97的简单例子以供参考。

---- 步聚

1.创建一个普通Application。

2.在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。

3.连接Excel 97,具体方法如下:


打开Excel97。

Try

    ExcelApplication1.Connect;

Except

End;

ExcelApplication1.Visible[0]:=True;

增加一个Workbook。

ExcelWorkbook1.ConnectTo(ExcelApplication1.

Workbooks.Add(EmptyParam,0));



添加一个Worksheet。

var

Temp_Worksheet: _WorkSheet;

begin

Try

Temp_Worksheet:=ExcelWorkbook1.

WorkSheets.Add(EmptyParam,

EmptyParam,EmptyParam,EmptyParam,0)

as _WorkSheet;//(注意)

ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);

Except

ShowMessage('Failure');

     End;

    end;

关闭Excel.

Try

    ExcelApplication1.Quit;

ExcelWorksheet1.Disconnect;

    ExcelWorkbook1.Disconnect;


ExcelApplication1.Disconnect;

Except

End;




  


                  





---- 4. 对Excel的一些操作:

选择当前Workbook的某一Worksheet.

procedure TForm1.ComboBox1DropDown

(Sender: TObject);

var

i: Integer;

begin

ComboBox1.Clear;

For i:=1 to ExcelWorkbook1.

Worksheets.Count do

   ComboBox1.Items.Add

((ExcelWorkbook1.Worksheets.Item

as _WorkSheet).Name);

end;



procedure TForm1.ComboBox1Change

(Sender: TObject);

begin

ExcelWorkSheet1.ConnectTo

(ExcelWorkbook1.Worksheets.Item

[ComboBox1.ItemIndex 1] as _WorkSheet);

ExcelWorkSheet1.Activate;

end;



选择某一Workbook:

procedure TForm1.ComboBox2DropDown

(Sender: TObject);

var

i: Integer;

begin

ComboBox2.Clear;

if ExcelApplication1.Workbooks.Count >0 then

For i:=1 to ExcelApplication1.Workbooks.Count do

Combobox2.Items.Add(ExcelApplication1.


Workbooks.Item.Name);

end;



procedure TForm1.ComboBox2Change(Sender: TObject);

begin

ExcelWorkSheet1.Disconnect;

ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.

Item[Combobox2.ItemIndex 1]);

ExcelWorkBook1.Activate;

ExcelWorksheet1.ConnectTo(ExcelWorkBook1.

ActiveSheet as _WorkSheet);

ExcelWorkSheet1.Activate;

end;



对某一单元格进行赋值及取值。

procedure TForm1.Button5Click(Sender: TObject);

begin

ExcelWorksheet1.Cells.Item[SpinEdit2.Value,

SpinEdit1.Value]:=Edit1.Text;

end;



procedure TForm1.Button6Click(Sender: TObject);

begin

Edit1.Text:=ExcelWorksheet1.Cells.Item[

SpinEdit2.Value,SpinEdit1.Value];

end;



选择某一区域

ExcelWorkSheet1.Range['A1','C1'].Select;


  


                  






打开一个Excel文件。

if OpenDialog1.Execute then<BR < TD> Begin

     Try

ExcelWorkBook1.ConnectTo

(ExcelApplication1.Workbooks.Open

(OpenDialog1.FileName,

EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,

EmptyParam,EmptyParam,0));

ExcelWorkSheet1.ConnectTo

(ExcelWorkBook1.Activesheet

  as _Worksheet);

     Except;

     End;

    End;

---- 说明

---- 本程序在Win98 Delphi 5 Excel 97下运行通过。本例子还可以作适当的扩充,如DDE、执行宏调用、保存文件、打印文件及对Excel的设置等,此设置方法请参阅Microsoft Excel Visual Basic参考中的Microsoft Excel对象。

TOP

发新话题