在 BluePrism 中引用 Office Interop 对象
Referencing Office Interop Objects in BluePrism
在 BluePrism 提供的开箱即用的 MS VBO 之外。是否有人成功地 import/reference (COM) Office Interop 对象(Word、Excel、Outlook 等)用于 BluePrism 代码阶段?请告诉我怎么做?
我注意到有一个类似的问题,但没有成功回答:
DLLImportAttribute C# - Outlook.
请查看我对您所引用问题的回答,这应该会让您了解如何使用 VB.NET。
如果你坚持用 C# 来做,你需要确保你添加了一个命名空间和对对象代码选项的引用(我的路径只是指向 GAC 中的某个地方,你应该将 DLL 复制到其他地方):
然后您可以在代码阶段使用 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 "prefix" 引用 Excel 对象(例如:Excel.Workbook
而不仅仅是 Workbook
)你需要为您的 Excel 命名空间指定一个 别名。你可以这样做:
之后您的代码将起作用:
var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbooks books = excelApp.Workbooks;
这实际上不是一个坏方法,因为某些 Excel 类 可能与其他 .NET 类 具有相同的名称。我相信我也必须这样做,因为 Table
或 Document
或其他原因...
在 BluePrism 提供的开箱即用的 MS VBO 之外。是否有人成功地 import/reference (COM) Office Interop 对象(Word、Excel、Outlook 等)用于 BluePrism 代码阶段?请告诉我怎么做?
我注意到有一个类似的问题,但没有成功回答: DLLImportAttribute C# - Outlook.
请查看我对您所引用问题的回答,这应该会让您了解如何使用 VB.NET。
如果你坚持用 C# 来做,你需要确保你添加了一个命名空间和对对象代码选项的引用(我的路径只是指向 GAC 中的某个地方,你应该将 DLL 复制到其他地方):
然后您可以在代码阶段使用 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 "prefix" 引用 Excel 对象(例如:Excel.Workbook
而不仅仅是 Workbook
)你需要为您的 Excel 命名空间指定一个 别名。你可以这样做:
之后您的代码将起作用:
var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbooks books = excelApp.Workbooks;
这实际上不是一个坏方法,因为某些 Excel 类 可能与其他 .NET 类 具有相同的名称。我相信我也必须这样做,因为 Table
或 Document
或其他原因...