riant; FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, ReplaceWith, Replace: OleVariant; SaveChanges, OriginalFormat, RouteDocument: OleVariant; begin FileName := ExtractFilePath(ParamStr(0)) + 'DOC\考察材料.DOC'; try // WordApplication1.Disconnect; WordApplication1.Connect; except Application.MessageBox('连接 WORD 服务器失败 请确定您已经正确安装 ',' , 。 错误框',MB_OK+MB_ICONSTOP); Abort; end; try Frmjd := TFrmjd.Create(Self); //显示进度 Frmjd.ProgressBar1.Max:=100; Frmjd.Show; WordApplication1.Visible := False; WordApplication1.Caption := '干部考察材料'; //参数赋值 ConfirmConversions := False; ReadOnly := False; AddToRecentFiles := False;
PasswordDocument := ''; PasswordTemplate := ''; Revert := True; WritePass
wordDocument := ''; WritePasswordTemplate := ''; Format := wdOpenFormatDocument; //打开文档(摸板) WordApplication1.Documents.Openold( FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format );
{Assign WordDocument component} ItemIndex := 1; WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex)); {Turn Spell checking of because it takes a long time if enabled and slows down Winword} WordApplication1.Options.CheckSpellingAsYouType := False; WordApplication1.Options.CheckGrammarAsYouType := False; //让 Word 替换标记字符串要使用 WordDocument.Range.Find.Execute: FindText := '<#XM>'; MatchCase := False; MatchWholeWord := True; MatchWildcards := False; MatchSoundsLike := False; MatchAllWordForms := False; Forward := True; Wrap := wdFindContinue; Format := False; ReplaceWith := DM.ADOQryMainXM.Value; Replace := wdReplaceAll; WordDocument1.Range.Find.Executeold( FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace ); Frmjd.ProgressBar1.Position := 10;//进度 Frmjd.Update;//进度窗口刷新 直接在 WORD 模版上写出<#name>。 FindText := '<#XM>';//这个是模板中的标记。 MatchCase := False;//匹配大小写。
MatchWholeWord := True;//匹配整个词语,这个不管,添 True 就行 MatchWildcards := False;//不清楚,这个不管,添 False 就行 MatchSoundsLike := False;//不清楚,这个不管,添 False 就行 MatchAllWordForms := False;//不清楚,这个不管,添 False 就行 Forward := True;//不清楚,这个不管,添 True 就行 Wrap := wdFindContinue;//不清楚,这个不管,用 wdFindContinue 就行 Format := False;//不清楚,这个不管,添 False 就行 ReplaceWith := DM.ADOQryMainXM.Value;//数据库的内容啊。 Replace := wdReplaceAll;//全部替换。
2003-11-28 10:25:03
Delphi+Word 解决方
案参考[转] 这是我做项目过 程中自己做的几个函数 见到大家都在问 Word 的
问题 现在拿出来和大家共享。 , 。 (希望有朋友可以进一步添加新的功能,或者做成包或者 lib 等,更方便大家使 用。我自己是没有时间啦,呵呵) 使用前,先根据需要建立一个空的 WORD 文件作为模板,在模板文件中设置 好各种格式和文本。另外,其中的 PrnWordTable 的参数是 TDBGridEh 类型的控 件,取自 Ehlib2.6 其中用到的 shFileCopy 函数(用于复制文件)和 guiInfo 函数(用于显示 消息框)也是自己编写的,代码也附后。 示范代码如下: 代码完成的功能: 1. 替换打印模板中的“#TITLE#”文本为“示