• 首页
  • 小学语文
  • 中学语文
  • 中学英语
  • 免费论文
  • 教学随笔
  • 学生作文
  • 综合考试
  • 试题教案
  • 育儿话题
  • 教学资源
  • 编程技术
  • 博客
  • 利用Delphi 5中调用Excel 97

    日期:2004-11-07  地址:  作者:
    利用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[i]
    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[i].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
            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对象。

    对 利用Delphi 5中调用Excel 97 文章的评论    [查看网友评论]

    验证码:
    匿名发表: