首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在BluePrism中引用Office对象

在BluePrism中引用Office对象
EN

Stack Overflow用户
提问于 2019-02-20 13:32:18
回答 1查看 1.4K关注 0票数 2

除了开箱即用的MS VBO外,还有BluePrism。是否有人成功地导入/引用(COM) Office对象(Word、Excel、Outlook等)用于BluePrism代码阶段?请告诉我怎么做?

我注意到有一个类似的问题,但没有成功地回答:DLLImportAttribute C# - Outlook

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 14:12:33

请看我对您所引用的问题的回答,这应该会给您提供和想法如何使用VB.NET。

如果您坚持使用C#执行此操作,则需要确保添加命名空间并引用对象的代码选项(“我的路径”仅指向GAC中的某个位置,您应该将DLL复制到其他地方):

然后,可以在代码阶段内使用DLL中的对象:

代码语言:javascript
复制
Application app = new Application(){
    Visible = true
};

Workbook wb = app.Workbooks.Add();
Worksheet ws = (Worksheet)wb.Worksheets.Add();
ws.Visible = XlSheetVisibility.xlSheetVisible;

如您所见,您也可以使用命名枚举,但与C# (与VBA不同)一样,您需要完全指定它(XlSheetVisibility.xlSheetVisible而不是xlSheetVisible)。

编辑:VB.NET的好处是您可以使用CreateObject()方法与explicitly进行交互,而无需显式指定该DLL的路径。如果您没有将DLL存储到所有资源PC所共有的位置的选项,则此操作非常有用。但是,如果可以的话,那么C#方法会给您带来更少的麻烦。

至于能够引用带有Excel“前缀”的Excel对象(例如:Excel.Workbook而不是Workbook),您需要为您的名称空间指定别名。你可以这样做:

之后,您的代码将起作用:

代码语言:javascript
复制
var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbooks books = excelApp.Workbooks;

这实际上是一种不错的方法,因为一些Excel类可能具有与其他.NET类相同的名称。我相信我也必须这样做,因为Table或者Document或者别的什么.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54787538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档