标签: ole-automation

如何将参数传递给OLE自动化对象,如MS Word

这主要是与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程序,以便使用上述两种方法中的任何一种吗?谢谢.

delphi ms-word ole-automation

4
推荐指数
1
解决办法
1460
查看次数

是否可以在没有安装 MS Word 的情况下生成 .docx 文件?

我想使用“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。

c# ms-word ole-automation word-automation google-docs-api

4
推荐指数
1
解决办法
2万
查看次数

使用Perl的OLE自动化基础知识

我是Perl Win32 :: OLE自动化的新手.我一直在阅读并尝试一些例子.我有几个问题(对不起,如果我使用不正确的术语 - 请纠正我):

  1. OLE可用于自动化Visual Studio 2005吗?我只找到了Word,Excel和IE的例子.你怎么知道可以使用哪个应用程序?

  2. 如何获取要使用的程序ID的名称.例如,Win32 :: OLE-> new('Excel.Application')中的"Excel"

  3. 如何获取每个程序的可用功能.例如,工作簿,只能用于Excel,而不能用于Word.

谢谢你的时间 :)

perl ole-automation

2
推荐指数
1
解决办法
1386
查看次数

OLE自动化:如何检查变量是否引用自动化对象

我想知道如何确定变量是否引用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,但我觉得这种方法不够好.

我在读有关VarIsEmpty,VarIsEmptyParam,没有什么,这个问题,但我不知道这件事.

delphi powerpoint ole ole-automation delphi-5

1
推荐指数
1
解决办法
2741
查看次数

如何将 Java Date 转换为 OADate 或反之亦然?

我想要将 Java Date 转换为 Microsoft OLE Automation - OADate 类型,或者想要将 OADate 转换为 Java Date。Java 的 OADate 的公式是什么?其实我在stackoverflow上搜索过并没有找到答案,我得到了答案并想在这个社区分享。

例如: 43013.7659837963等于Thu Oct 05 18:23:01 EET 2017

java date ole-automation

1
推荐指数
1
解决办法
2236
查看次数

哪里可以找到Delphi Word.Application OLE接口手册?

我所能找到的只是一个简单的例子VB的手册,它与Delphi不同.

编辑:所以没有手册.我在哪里可以找到翻译Delphi代码来访问OLE调用的代码?在当前状态下,有一个与Delphi的猜谜游戏,如何将vb翻译成Delhpi.

delphi ole-automation delphi-2009

-1
推荐指数
3
解决办法
5566
查看次数