这主要是与Delphi语法相关的问题.我需要在调用OLE对象的方法时将参数设置为True.
我需要在Word Automation中设置(这是来自Word Reference):
wdApp.Quit SaveChanges:=wdDoNotSaveChanges
Run Code Online (Sandbox Code Playgroud)
作为一个例子我想做的虚拟程序(请注意WordApp.Quit!):
Procedure GetWordVersion;
var
WordApp: OLEVariant;
begin
{ Create the OLE Object }
Try
WordApp := CreateOLEObject('Word.Application');
WordVersion := WordApp.version;
WordApp.Quit; // >-- HERE!!!!
except
on E: Exception do
begin
WordVersion := -1;
end;
End;
end;
Run Code Online (Sandbox Code Playgroud)
在这里(检查接受的答案)似乎完成了相同的事情,但如果我尝试它:不编译.我这里只复制相关部分:
Const wdDoNotSaveChanges = 0
[...]
wdo.Quit wdDoNotSaveChanges
[...]
End Function
Run Code Online (Sandbox Code Playgroud)
重要提示:而不是使用
// this is from Word Reference
wdApp.Quit SaveChanges:=wdDoNotSaveChanges
Run Code Online (Sandbox Code Playgroud)
可以使用
// from Word Reference
wdApp.NormalTemplate.Saved = True
Run Code Online (Sandbox Code Playgroud)
任何人都可以修改我上面的GetWordVersion程序,以便使用上述两种方法中的任何一种吗?谢谢.
我想使用“OLE 自动化”(或现在称为的任何名称)来生成 Word 文档。
我假设可以以编程方式执行以下操作:
Set page size (height, width, margin vals)
Set font type/name, style, and size
Add page numbering
Add pages
Insert page breaks
Run Code Online (Sandbox Code Playgroud)
我不确定的是,我是否需要在我的系统上安装 MS Word 来执行此操作(可能是拥有必要的 DLL)?我使用 Open Office(我喜欢它,而且它是免费的),但我认为以编程方式控制文档的创建对于 MS Word 可能比 Open Office 和/或 Libre Office 更容易/更好地记录 - 这就是为什么我强烈考虑让这个“与雷德蒙德会合”。
这个问题是切线与这一个
如果谷歌文档在这里是可能的,我愿意与山景城举行一次“会议”,但我对这种文件格式一无所知,也不知道它是否可以“自动化”等。
我需要最终得到一些可以转换为 PDF 文件或 DOCX 文件的内容。Open Office 可以打开 DOCX 并将文件转换为 PDF,但我不知道 Google Docs。
我是Perl Win32 :: OLE自动化的新手.我一直在阅读并尝试一些例子.我有几个问题(对不起,如果我使用不正确的术语 - 请纠正我):
OLE可用于自动化Visual Studio 2005吗?我只找到了Word,Excel和IE的例子.你怎么知道可以使用哪个应用程序?
如何获取要使用的程序ID的名称.例如,Win32 :: OLE-> new('Excel.Application')中的"Excel"
如何获取每个程序的可用功能.例如,工作簿,只能用于Excel,而不能用于Word.
谢谢你的时间 :)
我想知道如何确定变量是否引用OLE自动化对象.
我正在将一些Excel图表导出到Powerpoint.
我有这个代码:
var PptFile: Variant;
....
// PptFile _might_ be initialized:
PptFile:=pptApp.Presentations.Open(pptFilename);
// It depends on whether the export has items which need to be exported to
// Powerpoint or not
....
// I would like to determine if PptFile does reference an OLE automated object or not
PptFile.SaveAs(excelFileName+'.pptx');
Run Code Online (Sandbox Code Playgroud)
我知道,可以通过放置代码的最后一行(使用saveAs)来完成try...except...end
,但我觉得这种方法不够好.
我想要将 Java Date 转换为 Microsoft OLE Automation - OADate 类型,或者想要将 OADate 转换为 Java Date。Java 的 OADate 的公式是什么?其实我在stackoverflow上搜索过并没有找到答案,我得到了答案并想在这个社区分享。
例如: 43013.7659837963等于Thu Oct 05 18:23:01 EET 2017
delphi ×3
ms-word ×2
c# ×1
date ×1
delphi-2009 ×1
delphi-5 ×1
java ×1
ole ×1
perl ×1
powerpoint ×1