Ссылки на объекты взаимодействия Office в BluePrism - PullRequest
0 голосов
/ 20 февраля 2019

Не входящие в комплект поставки MS VBO, доступные с BluePrism.Кому-нибудь удалось импортировать / ссылаться (COM) объекты Office Interop (Word, Excel, Outlook и т. Д.) Для использования на этапах кода BluePrism?Пожалуйста, расскажите, как?

Замечу, что был похожий вопрос, но он не был успешно отвечен: DLLImportAttribute C # - Outlook .

1 Ответ

0 голосов
/ 20 февраля 2019

Пожалуйста, посмотрите на мой ответ на вопрос, на который вы ссылаетесь, и который должен дать вам представление о том, как сделать это с помощью 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)

EDIT : Преимущество VB.NET в том, что вы можете использовать метод CreateObject () для взаимодействия сExcel Interop DLL без явного указания пути к этой DLL.Это полезно, если у вас нет возможности сохранить DLL в папке, общей для всех ПК с ресурсами.Если вы можете, однако, то подход C # вызовет у вас гораздо меньше головной боли.

А что касается возможности ссылаться на объекты Excel с «префиксом» Excel (например: Excel.Workbook вместо просто *)1022 *) вам нужно указать псевдоним для вашего пространства имен Excel.Что вы можете сделать так:

enter image description here

После этого ваш код будет работать:

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

Это на самом деле неплохой подходпоскольку некоторые из классов Excel могут иметь то же имя, что и другие классы .NET.Я думаю, что я должен был сделать это также из-за Table или Document или что-то ...

...