Delphi Ole操作Word,判断是否有打开的文档,并且给关闭

摘要:
DelphiOle操作Word,判断是否有打开的文档,然后关闭它。FunctionChkWordIsOpen(constAFullFileName:string):布尔值;var WordApp:变量;CurrDoc:变量;开始结果:=False;WordApp:=GetActiveOleObject('word.Application');Cur公司

Delphi Ole操作Word,判断是否有打开的文档,并且给关闭。

Function ChkWordIsOpen(const AFullFileName: string): boolean;
var
  WordApp: variant;
  CurrDoc: variant;
begin
  Result := False;
  WordApp := GetActiveOleObject('word.Application');
  CurrDoc := WordApp.documents.Open(AFullFileName, Revert:=true, Visible := true );
  CurrDoc.Close;
  CurrDoc := Unassigned;
  result := true;
end;

一、Delphi程序启动Word
采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为:
首先使用GetActiveOleObject('Word.Application')判断当前内存中是否存在Word程序,如果存在,
则直接连接,如果没有Word程序,则使用CreateOleObject('Word.Application')启动Word

二、Delphi程序新建Word文稿
格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)
Template
: 使用模板的名称,
NewTemplate
: 新建文档的类型,True表示为模板,False表示为文档
DocumentType
: 文档类型,默认为空白文档
Visible
: 打捞的窗口是否可见

举例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:\Temlate.dot',NewTemplate:=False);

三、Delphi程序打开Word文稿
格式:WordDocuments.Open(FileName,ConfirmConversions,ReadOnly,PassWordDocument,
PasswordTemplate,Revent,WritePasswordDocument,WritePassWordTemplate,
Format,Encoding,Visible)

FileName: 文档名(包含路径)
Confirmconversions
: 是否显示文件转换对话框
ReadOnly
: 是否以只读方式打开文档
AddToRecentFiles
: 是否将文件添加到"文件"菜单底部的最近使用文件列表中
PassWordDocument
: 打开此文档时所需要的密码
PasswordTemplate
: 打开此模板时所需要的密码
Revert
: 如果文档已经,是否重新打开文档
WritePasswordDocument
: 保存对文档更改时所需要的密码
WritePasswordTemplate
: 保存对模板进行更改时所需要的密码
Format
: 打开文档时所需使用的文件转换器
Encoding
: 所使用的文档代码页
Visible
: 打开文档的窗口是否可见

举例:
Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False,
AddToRecentFiles:=False);

四、Delphi程序保存Word文稿
格式:WordDocuments.SaveAs(FileName, FileFormat, LockComments, Password,
AddToRecentFiles, WritePassword, ReadOnlyRecommended,
EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData,
SaveAsAOCELetter)

FileName: 文件名。默认为当前文件夹和文件名。
FileFormat
文档保存的格式。
LockComments
如果为 True,则此文档只允许进行批注。
Password
打开文档时的口令。
AddToRecentFiles
如果为True,则将文档添至"文件"菜单中最近使用的文档列表中。
WritePassword
保存对文档的修改所需的口令。
ReadOnlyRecommended
如果为 True,在每次打开文档时,Word 将建议用户采用只读方式。
EmbedTrueTypeFonts
如果为 True,则将文档与 TrueType 字体一起保存。
SaveNativePictureFormat
如果为 True,则从其他系统平台(例如 Macintosh)导入的图形仅保存其 Windows 版本。
SaveFormsData
如果为 True,则将窗体中用户输入的数据存为一条数据记录。
SaveAsAOCELetter
如果文档包含一个附加,当此属性值为 True 时,将文档存为一篇 AOCE 信笺(同时保存邮件)。

举例:
Word_Ole.Documents.SaveAs(FileName:=Doc_File,FileFormat=wdFormatDocument,
AddToRecentFiles=False);

免责声明:文章转载自《Delphi Ole操作Word,判断是否有打开的文档,并且给关闭》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS开发之多线程在linux上运行jmeter下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi NativeXML 乱码的问题

我遇到 NativeXML 在它的一个节点的属性上面写入属性,但是当读出的值中包含汉字的时候出现了乱码。检查代码如下 NativeXml := TNativeXml.Create; try       NativeXml.EncodingString := 'GB2312';// 'UTF-8';        NativeXml.Utf8Convert...

DELPHI 解决DBGrid SHIFT键多选问题

在实际项目中,偶然遇到需要按下SHIFT键,在DBGrid中进行多选的情况,测试了几种方法,最终确定了一个比较好的解决方法,总结如下: procedure TTestFrame.TestDBGridMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Inte...

Delphi Delay 延时计数的功能。 下面的方法都是思路,但是没有用在项目上

procedure Tfrm_InstrumentControl.aa;varCurLength: Word;vTimeLength: Word;beginScreen.Cursor := crHourGlass;tryvTimeLength := StrToIntDef(num_GrossAnalyzeTime.Text, 0) * 60;CurLeng...

delphi类型转换 asci与char

ord(char) = asc chr(asc) = char inttohex(int,1) = hex (string)   使用AStr[i]取AStr:String中的第i个字符时需要注意的事项:这里i表示第i个字符,并不是通常的0表示第1个,i表示第i+1个。   二位的16进制转换为10进制: function HexToInt(hex :...

关于 Delphi 中流的使用(1) 用 TMemoryStream(内存流) 入门

前言: 所谓"流", 就是一段数据或是一块内存; 在进行流操作时, 我们不必关心流中的数据到底是什么; 只需要知道流的大小和当前的指针位置. 所以流只有两个属性: Size、Position. 对流的操作, 不过就是读取和写入. 所以流最主要的方法就是 Read 和 Write. 在很多控件的使用中, 读取主要用 LoadFromStream; 写入主要用...

Delphi自写组件:可设置颜色的按钮(改成BS_OWNERDRAW风格,然后CN_DRAWITEM)

unit ColorButton; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, StdCtrls; type TColorButton = class(TButton) private //添加Color属性,默...