在蓝色棱镜中引用Office互操作对象

问题描述 投票:2回答:1

在BluePrism可用的开箱即用的MS VBO之外。有没有人成功设法导入/引用(COM)Office Interop对象(Word,Excel,Outlook等)以便在BluePrism代码阶段使用?请告诉我怎么样?

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

c# com-interop blueprism
1个回答
2
投票

请查看我对您引用的问题的答案,该答案应该让您了解如何使用VB.NET进行操作。

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

enter image description here

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

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()方法与Excel Interop DLL交互,而无需显式指定该DLL的路径。如果您没有将DLL存储到所有资源PC通用位置的选项,这将非常有用。但是,如果可以,那么C#方法会让您更少头痛。

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

enter image description here

之后您的代码将起作用:

var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbooks books = excelApp.Workbooks;

这实际上并不是一个糟糕的方法,因为某些Excel类可能与其他.NET类具有相同的名称。我相信我也必须这样做,因为TableDocument或其他东西......

© www.soinside.com 2019 - 2024. All rights reserved.