建立与Excel连接

来源:互联网 发布:js判断字符串特殊符号 编辑:程序博客网 时间:2024/05/01 22:16
    unit UJoin_excel;    interface    uses      //定义使用系统的单元文件      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,      StdCtrls, Buttons, OleServer, ExtCtrls, DBCtrls, Grids, DBGrids,      Db, DBTables, Excel2000,Variants;      //如果用户使用的不是Delphi 7(如Delphi 5),则可能要指定Excel97,而非Excel2000    type    TForm1 = class(TForm)    //定义在窗体上使用的组件,包括作为自动化服务器的Excel组件    ExcelApplication1: TExcelApplication;    ExcelWorksheet1: TExcelWorksheet;    ExcelWorkbook1: TExcelWorkbook;    SaveDialog1: TSaveDialog;    ConnectBtn: TBitBtn;    Query1: TQuery;    DataSource1: TDataSource;    DBGrid1: TDBGrid;    DBNavigator1: TDBNavigator;    InsertDataBtn: TBitBtn;    SaveBtn: TBitBtn;    QuitBtn: TBitBtn;    CloseAppBtn: TBitBtn;    Label1: TLabel;    //如下定义按钮的事件处理过程    procedure FormCreate(Sender: TObject);    procedure ConnectBtnClick(Sender: TObject);    procedure InsertDataBtnClick(Sender: TObject);    procedure SaveBtnClick(Sender: TObject);    procedure QuitBtnClick(Sender: TObject);    procedure CloseAppBtnClick(Sender: TObject);    private      { Private declarations }    public      { Public declarations }    end;    var    Form1: TForm1;    implementation    uses      ComObj;     {$R *.DFM}    procedure TForm1.FormCreate(Sender: TObject);    //建立窗体时的事件处理过程    begin      Query1.close;      Query1.Open;      //获取用于制作电子表的数据库信息      showmessage('欢迎你使用Excel自动化服务器!');      //showmessage(IntToStr(Query1.FieldCount));    end;    procedure TForm1.ConnectBtnClick(Sender: TObject);    //连接Excel按钮的事件处理过程,启动Excel,并设置相关标题    begin      Try        ExcelApplication1.Connect;        //建立与Excel的连接,如果出错则显示提示信息      Except        MessageDlg('Excel2000是否已正确安装',mtError, [mbOk], 0);        Abort;        //如果出错,不报告错误信息,结束当前程序的执行      End;      ExcelApplication1.Visible[0]:=True;      //设置成可视状态      ExcelApplication1.Caption:='Delphi连接Excel应用';      //设置Excel的标题      ExcelApplication1.Workbooks.Add(Null,0);      ExcelApplication1.Workbooks.Add(emptyParam,0);      //增加一个新的空工作簿      ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);      //连接工作簿      ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);      //连接工作表    end;    procedure TForm1.InsertDataBtnClick(Sender: TObject);    //插入数据按钮的事件处理过程,在Excel工作表中生成需要表格    //并将数据库的内容写入Excel的工作表中      var      i,row,column:integer;      //定义用于控制单元格的变量    begin      //如下设置单元格第一行的内容,即各列的标题,本表有7列组成      ExcelWorksheet1.Cells.Item[1,1]:='时间';      //设置第一列的标题      ExcelWorksheet1.Cells.Item[1,2]:='年度指标';      ExcelWorksheet1.Cells.Item[1,3]:='当年拨款';      ExcelWorksheet1.Cells.Item[1,4]:='支出数额';      ExcelWorksheet1.Cells.Item[1,5]:='余额';      ExcelWorksheet1.Cells.Item[1,6]:='超支';      ExcelWorksheet1.Cells.Item[1,7]:='上年节余';      //设置第7列的标题      row:=2;      While Not(Query1.Eof) do      //此循环将满足条件的数据库记录写入Excel的工作表中      begin         column:=1;         for i:=1 to Query1.FieldCount do         //此循环控制写出的列数         begin            ExcelWorksheet1.Cells.Item[row,column]:=Query1.fields[i-1].AsString;            //为工作表的单元格赋值,row,column用于控制行和列            column:=column+1;         end;      Query1.Next;      //获取下一个数据库记录      row:=row+1;      end;    end;    procedure TForm1.SaveBtnClick(Sender: TObject);    //保存按钮的事件处理过程,将Excel表中的数据保存到用户指定的文件中    begin       if SaveDialog1.Execute then       ExcelWorksheet1.SaveAs(SaveDialog1.FileName);       //根据对话框输入的文件名,保存工作表    end;    procedure TForm1.QuitBtnClick(Sender: TObject);    //退出Excel按钮对话框,关闭Excel,并解除与Excel的连接    begin       ExcelApplication1.Quit;       //关闭Excel,并显示是否保存的提示信息       ExcelApplication1.Disconnect;       //解除与Excel自动化服务器的连接    end;    procedure TForm1.CloseAppBtnClick(Sender: TObject);    //关闭应用,结束程序的运行    begin       close;       //调用窗体的close方法。    end;    end.
原创粉丝点击