在Delphi中操作Word

    unit UJoin_word;
    interface
    uses
    //指定使用系统的单元文件
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, OleServer, Buttons, DBCtrls, Db, Grids, DBGrids,
    DBTables, ExtCtrls, Menus, Word2000,Variants;
    {根据用户在安装Delphi时,指定使用Office97还是Office2000,使用的单元文件不同如果指定使用Office97,则应包括Word97,如果指定使用Office2000,则应包括Word2000;}
    type
    TForm1 = class(TForm)
    //定义在窗体上使用的组件
    WordApplication1: TWordApplication;
    //连接Word应用组件
    WordDocument1: TWordDocument;
    //连接Word文档组件
    Edit1: TEdit;
    ConnectWordBtn: TBitBtn;
    DataSource1: TDataSource;
    Table1: TTable;
    DBGrid1: TDBGrid;
    DBMemo1: TDBMemo;
    DBNavigator1: TDBNavigator;
    WordFont1: TWordFont;
    //该变字体组件
    ComboBoxFont: TComboBox;
    MainMenu1: TMainMenu;
    //菜单组件
    Word1: TMenuItem;
    Start: TMenuItem;
    N2: TMenuItem;
    Word2: TMenuItem;
    N3: TMenuItem;
    Append: TMenuItem;
    Save: TMenuItem;
    PreView: TMenuItem;
    print: TMenuItem;
    Insert: TMenuItem;
    Close: TMenuItem;
    QuitRun: TMenuItem;
    //定义使用数据库的组件
    Table1BDEDesigner: TIntegerField;
    Table1BDEDesigner2: TStringField;
    Table1BDEDesigner3: TDateField;
    Table1BDEDesigner4: TStringField;
    Table1BDEDesigner5: TStringField;
    Table1BDEDesigner6: TStringField;
    Table1BDEDesigner7: TStringField;
    //如下定义事件处理过程
    procedure FormCreate(Sender: TObject);
    procedure ComboBoxFontChange(Sender: TObject);
    procedure AppendClick(Sender: TObject);
    procedure StartClick(Sender: TObject);
    procedure InsertClick(Sender: TObject);
    procedure SaveClick(Sender: TObject);
    procedure PreViewClick(Sender: TObject);
    procedure printClick(Sender: TObject);
    procedure CloseClick(Sender: TObject);
    procedure QuitRunClick(Sender: TObject);
    private
       { Private declarations }
    public
       { Public declarations }
    end;
    var
    Form1: TForm1;
    implementation
    {$R *.DFM}

    procedure TForm1.FormCreate(Sender: TObject);
    //当建立窗体时,调用该过程,它完成菜单初始设置
    begin
      Table1.close;
      Table1.open;
      ComboBoxFont.Items:=Screen.Fonts;
      //将各种字体保存到带有下拉列表的组合框中
      WordFont1.ConnectTo(WordDocument1.Sentences.Get_last.Font);
      WordFont1.Bold:=1;
      MainMenu1.Items[0].enabled:=True;
      //开始时,允许进行连接Word操作
      MainMenu1.Items[1].enabled:=False;
      //在连接Word之前,不允许进行文档处理
      MainMenu1.Items[2].enabled:=False;
      //在连接Word之前,不允许关闭Word的操作}
      edit1.selectAll;
      edit1.CopyToClipboard;
      //将编辑框的内容拷贝到粘贴板上
    end;

    procedure TForm1.AppendClick(Sender: TObject);
    //该事件处理过程将粘贴板上的内容拷贝到Word文档中
    begin
      WordDocument1.Sentences.Last.Paste;
      //将粘贴板上的内容拷贝到文档中
      WordDocument1.Range.InsertAfter(#13);
      //在文档的后面加上换行符
    end;

    procedure TForm1.StartClick(Sender: TObject);
    var Template,NewTemplate,ItemIndex:OleVariant;
    //开始菜单事件处理过程,连接Word应用,设置Word文档的标题和菜单选项
    begin
       Template:=EmptyParam;
       NewTemplate:=true;
       ItemIndex:=1;
       try
         WordApplication1.connect;
         //使用WordApplication组件的connect方法,启动Word
       except
         //如出现异常,显示提示信息并终止连接
         messageDlg('Word2000 是否已正确安装',mtError,[mbOk],0);
         abort;
       end;
       WordApplication1.Visible:=True;
       //使Word应用成为可视
       WordApplication1.caption:='Delphi连接Word(Automation应用)';
       //设置文档标题
       WordDocument1.connectTo(WordApplication1.Documents.Item(ItemIndex));
       //将文档组件WordDocument1和应用组件WordApplication1相关联
       MainMenu1.Items[0].enabled:=False;
       //在连接Word之后至关闭之前,不允许再连接Word
       MainMenu1.Items[1].enabled:=True;
       //在连接Word之后,可完成文档处理操作
       MainMenu1.Items[2].enabled:=True;
       //在连接Word之后,允许关闭Word
    end;

    procedure TForm1.InsertClick(Sender: TObject);
    //在Word文档的后面插入信息,如果出现错误,则显示错误信息并解除与Word的连接
    begin
       try
          WordDocument1.Range.InsertAfter(table1.fields[3].AsString+#13);
          //在文档的最后插入
       Except
       on E:Exception do
       //如出现异常,显示提示信息
       begin
         Showmessage(E.Message);
         WordApplication1.Disconnect;
         //如插入出错,则解除连接
       Table1.close;
       //关闭数据库表
       end;
      end;
    end;

    procedure TForm1.SaveClick(Sender: TObject);
    //保存文档菜单项事件处理过程,将新建的文档保存到指的位置和文件中
    var
    SaveDocFile,EmptyPara:OleVariant;
    begin
       SaveDocFile:='c:/file1.doc';
       //指定保存文档的位置
       EmptyPara:=EmptyParam;
       WordDocument1.SaveAs(SaveDocFile,EmptyPara);
       //调用SaveAs方法,保存Word文档
    end;

    procedure TForm1.PreViewClick(Sender: TObject);
    //预览打印文档菜单项事件
    begin
       WordDocument1.PrintPreView;
       //调用PrintPreView方法,预览打印文档
    end;

    procedure TForm1.printClick(Sender: TObject);
    // 打印文档菜单项事件处理过程
    begin
       WordDocument1.PrintOut;
       //调用PrintOut方法,完成Word文档的打印
    end;

    procedure TForm1.CloseClick(Sender: TObject);
    //关闭菜单项事件处理过程
    var
       SaveChanges,OriginalFormat,RouteDocument:OleVariant;
    begin
       SaveChanges:=wdDoNotSaveChanges;
       //wdDoNotSaveChanges是一个常数,在Word2000.pas单元中定义,
       // 其值为$00000000
       OriginalFormat:=UnAssigned;
       RouteDocument:=UnAssigned;
       try
          WordApplication1.Disconnect;
          //解除与Word程序建立的连接
          WordApplication1.Quit(SaveChanges,OriginalFormat,RouteDocument);
          //Quit方法在Word2000.pas单元中定义,调用它将退出并关闭Word程序,
          //此处调用将不保存文档的内容
       finally
       end;
     end;

    procedure TForm1.ComboBoxFontChange(Sender: TObject);
    //改变字体事件处理过程
    begin
       WordFont1.ConnectTo(WordDocument1.Sentences.Get_last.Font);
       WordFont1.Name:=ComboBoxFont.text;
       WordFont1.Bold:=2;
       //将显示文档的字体改成黑体
       WordFont1.Italic:=1;
       //将显示文档的字体改成斜体
       WordFont1.Size:=16;
       //将显示文档的字体大小改成16
    end;

    procedure TForm1.QuitRunClick(Sender: TObject);
    //退出菜单项事件处理过程
    begin
       exit;
    end;
    end.



©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页