网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 程序设计-> Delphi/Pascal-> Delphi+Word例题

Delphi+Word例题
作者:佚名 来源:InterNet 加入时间:2004-11-25
相关文章
  • Word中的辅助功能——工具栏和菜单选项
  • Word不用公式编辑器也能编公式
  • 办公人士必备 Word中巧用Ctrl快捷键
  • 能说会道的Word 2003 实现文本教学的朗读
  • office应用小技巧 正确显示出Word中的空格
  • 两个小技巧 用Word 2003助你轻松阅读文档
  • 自我放松一下 Word 2003的另类超级BT玩法
  • 快速如飞 Word文档快速实现不同位置的跳转
  • Word图片看不清不要紧 试试还原它标准尺寸
  • 使用宏使工作简化 妙用Word宏输入特殊符号
  • 相关书籍:
  • Word VB 参考
  • word2000教程
  • Delphi擅长做数据库类的MIS开发,但对于OA就有点力不从心了。不过随着Microsoft的COM技术逐渐成熟,现在普通Windows应用已经可以和Office 97无缝结合了,尤其是在Delphi 5中提供了一组Servers组件,更是简化了程序开发。

    最近接触了一个用户的案例,用Delphi控制Word做一个合同管理程序。办公人员先根据业务需要,写好合同的文字,但在用户名称、产品名称等变化的位置填写指定的标记字符串,然后通过Delphi把数据库中的实际数据替换掉Word中的文字,最后让Word打印出合同。

    Delphi自带了一个简单的Word例题,但功能太简单。通过查找VBA的说明,再对照Delphi的VCL,编写了如下代码,实现了基本的公文管理功能。

    启动Word时用如下代码:
    begin
    try
    Wordapplication.Connect;
    except
    MessageDlg('Word may not be installed', mtError, [mbOk], 0);
    Abort;
    end;
    Wordapplication.Visible := True;
    WordApplication.Caption := 'Delphi automation';
    end;

    关闭Word用如下代码。如果想保存Doc文件,请修改SaveChanges变量的内容:
    var
    SaveChanges, OriginalFormat, RouteDocument: OleVariant;
    begin
    SaveChanges := WdDoNotSaveChanges;
    OriginalFormat := UnAssigned;
    RouteDocument := UnAssigned;
    try
    WordApplication.Quit(SaveChanges, OriginalFormat, RouteDocument);
    WordApplication.Disconnect;
    except
    on E: Exception do
    begin
    Showmessage(E.Message);
    WordApplication.Disconnect;
    end;
    end;
    end;

    让Word打开一个指定的文件,需要先放置OpenDialog,然后调用WordApplication.Documents.Open:
    var
    ItemIndex :OleVariant;
    FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
    PasswordDocument, PasswordTemplate, Revert,
    WritePasswordDocument, WritePasswordTemplate, Format: OleVariant;
    begin
    if not dlgOpen.Execute then
    Exit;

    {Open document}
    FileName := dlgOpen.FileName;
    ConfirmConversions := False;
    ReadOnly := False;
    AddToRecentFiles := False;
    PasswordDocument := '';
    PasswordTemplate := '';
    Revert := True;
    WritePasswordDocument := '';
    WritePasswordTemplate := '';
    Format := wdOpenFormatDocument;

    WordApplication.Documents.Open( FileName, ConfirmConversions,
    ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
    Revert, WritePasswordDocument, WritePasswordTemplate, Format );

    {Assign WordDocument component}
    ItemIndex := 1;
    WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));

    {Turn Spell checking of because it takes a long time if enabled and slows down Winword}
    WordApplication.Options.CheckSpellingAsYouType := False;
    WordApplication.Options.CheckGrammarAsYouType := False;
    end;

    让Word替换标记字符串要使用WordDocument.Range.Find.Execute,这里用Delphi替换了<#Name>:
    var
    FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike,
    MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace: OleVariant;
    begin
    FindText := '<#Name>';
    MatchCase := False;
    MatchWholeWord := True;
    MatchWildcards := False;
    MatchSoundsLike := False;
    MatchAllWordForms := False;
    Forward := True;
    Wrap := wdFindContinue;
    Format := False;
    ReplaceWith := 'Delphi';
    Replace := True;

    WordDocument.Range.Find.Execute( FindText, MatchCase, MatchWholeWord,
    MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
    Wrap, Format, ReplaceWith, Replace );

    end;

    上面这4段代码完成了公文管理的基本功能,再把它和数据库结合起来,就可以开发一个与Lotus Notes类似的产品了。

    孙立



    [文章录入员:fightter]

    相关文章
  • Word中的辅助功能——工具栏和菜单选项
  • Word不用公式编辑器也能编公式
  • 办公人士必备 Word中巧用Ctrl快捷键
  • 能说会道的Word 2003 实现文本教学的朗读
  • office应用小技巧 正确显示出Word中的空格
  • 两个小技巧 用Word 2003助你轻松阅读文档
  • 自我放松一下 Word 2003的另类超级BT玩法
  • 快速如飞 Word文档快速实现不同位置的跳转
  • Word图片看不清不要紧 试试还原它标准尺寸
  • 使用宏使工作简化 妙用Word宏输入特殊符号
  • 相关书籍:
  • Word VB 参考
  • word2000教程
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    Delphi/Pascal
    C/C++/VC
    C++Builder
    Basic/VB类
    Delphi/Pascal
    Java编程
    FORTRAN
    其它
    电脑教程阅读排行
    ·DELPHI下的多线程程序设计(...
    ·Delphi与Excel的亲密接...
    ·Delphi实现串口通信的常用的...
    ·Delphi中初始化.Ini文件...
    ·Delphi中用于读写(I/O)...
    ·谈谈Delphi中的类和对象
    ·Delphi编译错误中文手册
    ·Delphi中关于TApplic...
    ·OPENGL图形程序设计
    ·SQL的基本操作