Delphi擅长做数据库类的MIS开发但对于OA就有点力不从心了不过随着Microsoft的COM技术逐渐成熟现在普通Windows应用已经可以和Office 无缝结合了尤其是在Delphi 中提供了一组Servers组件更是简化了程序开发
最近接触了一个用户的案例用Delphi控制Word做一个合同管理程序办公人员先根据业务需要写好合同的文字但在用户名称产品名称等变化的位置填写指定的标记字符串然后通过Delphi把数据库中的实际数据替换掉Word中的文字最后让Word打印出合同
Delphi自带了一个简单的Word例题但功能太简单通过查找VBA的说明再对照Delphi的VCL编写了如下代码实现了基本的公文管理功能
启动Word时用如下代码
begin
try
WordapplicationConnect;
except
MessageDlg(Word may not be installed mtError [mbOk] );
Abort;
end;
WordapplicationVisible := True;
WordApplicationCaption := Delphi automation;
end;
关闭Word用如下代码如果想保存Doc文件请修改SaveChanges变量的内容
var
SaveChanges OriginalFormat RouteDocument: OleVariant;
begin
SaveChanges := WdDoNotSaveChanges;
OriginalFormat := UnAssigned;
RouteDocument := UnAssigned;
try
WordApplicationQuit(SaveChanges OriginalFormat RouteDocument);
WordApplicationDisconnect;
except
on E: Exception do
begin
Showmessage(EMessage);
WordApplicationDisconnect;
end;
end;
end;
[] []