UiPath Excel AddIn - Einführung und Installation

Das Excel AddIn von UiPath erlaubt es, umfassende Anwendungsfälle aus einer beliebigen Excel-Datei zu starten. Somit können Daten in der aktuellen Datei angereichert oder auch in andere Zielsysteme weitergereicht werden. In diesem Blog zeige ich Dir, wie Du das AddIn installierst und im Weiteren, wie Du einen Prozess dafür bauen könntest. Voraussetzung für die Verwendung des Add-In ist, dass UiPath Assistant (Version 2023.4.2 oder höher) auf dem Gerät installiert ist. Das würde für das Ausführen von Prozessen reichen. Für die Entwicklung von Prozessen benötigst Du "UiPath Studio".

Installationsanleitung

Du könntest das Add-In direkt aus dem Microsoft Store via diesem Link abrufen: https://appsource.microsoft.com/en-us/product/office/WA200005457?flightCodes=UiPathAssistantExcel

Öffne alternativ eine neue Excel-Mappe und gehe unter dem Menüpunkt "Einfügen" auf "Add-Ins abrufen":

ExcelAddIn_Installer_Store

Daraufhin kannst Du nach dem Add-In "WA200005457" suchen und den "UiPath Assistant for Excel" hinzufügen:

ExcelAddIn_Installer_AddIn

Der UiPath Assistant für Excel wird daraufhin verfügbar sein, in meinem Fall noch "ohne Excel Automationen (Prozesse)":

ExcelAddIn_Assistant_empty

Falls Du an der Manifest-Datei interessiert wärst, finde sämtliche Informationen unter diesem Kapitel in der offiziellen UiPath Dokumentation: https://docs.uipath.com/robot/standalone/2023.4/user-guide/excel-add-in#using-the-manifest-file

Entwickeln eines Prozesses in UiPath Studio

Du könntest simple Prozesse und Funktionalitäten von Grund auf bauen. Es gibt jedoch unter den "Templates" (Vorlagen) den folgenden Inhalt, mit welchem die spezifischen Excel-Cases einfacher gebaut werden können. Suche einfach nach "Excel" und Du wirst "UiPath Assistant for Excel Process" finden.

ExcelAddIn_UiPath_Template

Selbstverständlich ist dies lediglich ein "Template", das womöglich Exception-Handling oder Vorgaben Deiner Organisation nicht berücksichtigt, aber für den Umgang mit einer geöffneten Excel-Datei (für den UiPath Assistant) sehr geeignet ist. Die Vorlage beinhaltet einen Subworkflow "Parse Excel Selection", damit die Benutzerauswahl von Zelle(n) interpretiert werden kann. In der Haupt-Sequenz (Main) ist der Umgang mit dem aktuellen Excel-Tabellenblatt vorbereitet. Füge die gewünschten Interaktionen ein, die auf Basis des Excels vorgenommen werden sollen. Das können auch Interaktionen mit dem Web, lokalen Applikationen (Legacy-Systemen) oder APIs sein, um weitreichende Anwendungsfälle zu verarbeiten. In der Vorlage finden sich zudem zwei dynamische Parameter, die diese Vorhaben ermöglichen:

  • in_FilePath (String) - bezieht sich auf den Dateipfad, von welchem das Add-In den Prozess startet.
  • in_Selection (String) - bezieht sich auf die Zelle(n), welche beim Start des Prozesses ausgewählt sind. Bestimmte Funktionalitäten im Prozess können also auf die Benutzer-Selektion im Spezifischen angewandt werden. Zum Beispiel: "Suche mir diese spezifischen Fremdwährungskurse" oder "Frage die selektierte(n) Kundennummer(n) im CRM ab und reichere sie mit bestimmten Daten an".

Nachdem der Prozess erarbeitet wurde, sollte dieser via UiPath Orchestrator veröffentlicht werden. Zunächst würdest Du den Prozess noch nicht im Excel Add-In sehen. Damit ein Prozess im AddIn ersichtlich wird, muss der veröffentlichte Process in UiPath Orchestrator mit dem Tag "excelAddin" versehen werden. Du findest die Einstellung in den Process-Settings auf Orchestrator:

ExcelAddIn_UiPath_ProcessTags

Somit habe ich einen Beispiel-Prozess, der mir für die gewünschten Währungs-Paare die Umrechnungskurse und ein Beispiel davon erarbeiten würde. Ich kann den Prozess jederzeit aus Excel starten und habe einen virtuellen Helfer (Assistant), welcher mich bei der täglichen Excel-Arbeit tatkräftig unterstützen kann.

ExcelAddIn_Assistant_ExchangeRate

Zeitangabe mit mehr als 24h in einer Zelle darstellen

Zeiten in Excel darzustellen und mit Datum und Uhrzeit zu rechnen, stellt uns immer wieder vor Herausforderungen. Hier zeige ich Dir in einem kurzen Beitrag auf, wie Du eine Zeitangabe mit mehr als 24 Stunden in einer Zelle darstellen kannst. Das Problem tritt insbesondere dann auf, wenn Du mehrere Zeiten zusammenrechnest und über die 24h-Grenze hinausgerätst. Dies ist ein Beispiel mit vier Einzelzeiten, die wir aufaddieren (kumulieren):

Zeitangabe_Addition

Wie Du erkennst, können die Zeiten bis und mit Tag 3 noch korrekt kumuliert werden. Beim vierten Tag überschreiten wir die 24h-Grenze und weisen die Zeiten deshalb als 6h 42min aus (+1 Tag, der in der Formatierung nicht mehr berücksichtigt ist). Unsere Intention ist es jedoch, das Resultat in Stunden anzuzeigen - d.h. die zusätzlichen 24h müssten dazugerechnet werden. Wir gelangen zu dem gewünschten Resultat, indem wir die Zelle umformatieren. Gib in der Kategorie "Benutzerdefiniert" dieses Format ein:

[h]:mm

Dies führt zur gewünschten Darstellung, wie die untenstehende Abbildung aufzeigt:

Zeitangabe_Format

Daten transponieren (Formel ZEILENUMBRUCH)

Angenommen Du erhältst Daten in einer ungünstigen Struktur. Womöglich kennst Du die Funktion "Transponieren", indem Du die Daten markierst, kopierst und mittels "transponieren" einfügst. Dies "dreht" Deinen Bericht von einer Zeilen- zu einer Spaltenansicht (oder vice versa). Siehe hierzu auch diesen Beitrag: Einen Bericht drehen (Spalten zu Zeilen - Transponieren).

Für diesen Beitrag haben wir das untenstehende Datenset, mit zufälligen Adressdaten erhalten:

Daten transponieren - Beispieldaten

Wir können die Daten nicht weiterverwenden und müssen sie zuerst in dedizierte Spalten "Name", "Adresse" und "Telefon" bringen. Welche Lösungsansätze bieten sich uns? Mittels eingangs erwähntem "Transponieren" kommen wir nicht weiter; respektive nur ansatzweise (Eintrag für Eintrag). Ein manueller Übertrag kommt für uns natürlich nicht in Frage. Ein Makro mit einer For Each-Schleife würde funktionieren, es bietet sich jedoch mit einer einzigen Excel-Formel eine Lösung an: Die Formel "=ZEILENUMBRUCH" kann die Daten direkt für uns aufbereiten. Dies ist die Formel-Syntax:

Formel Zeilenumbruch-Syntax

Konkret können wir unsere Daten (die übrigens in den Zellen A1:A45 sind), mit folgender Formel aufbereiten lassen:

=ZEILENUMBRUCH(A1:A45;3)

Der "Vektor" beinhaltet der Bereich, wo unsere Daten aufgeführt sind. Die zweite Angabe, der "wrap_count" definiert, nach wie vielen Einträgen Excel jeweils einen "Zeilenumbruch" einfügen soll, um auf der nächsten Zeile fortzufahren.

Daten transponieren - Result

Die Formel hat eine optionale Angabe "pad_with". Falls Du im Allgemeinen eine grosse Datenmenge zusammenführen möchtest und in der letzten Zeile nicht alle Einträge gefüllt werden, erhältst Du einen "#N/V"-Fehler. Mit der "pad_with"-Angabe kannst Du einen Wert dafür definieren (z.B. "NULL", "LEER", etc.).

Anstelle von "ZEILENUMBRUCH" könntest Du je nach Anwendungsfall auch "SPALTENUMBRUCH" verwenden; das Konzept ist ähnlich wie beim "SVERWEIS" und dem "WVERWEIS". Falls Du Excel auf Englisch benutzt, wären dies die Formeln "WRAPROWS" (ZEILENUMBRUCH) oder "WRAPCOLS" (SPALTENUMBRUCH), Rows für Zeilen, Cols für Spalten (Columns).

Die zufällig generierten "Testdaten" habe ich im Übrigen mit UiPath und dem "Testing" Aktivitäten-Package aufbereitet (UiPath.Testing.Activites). Es sind dies die Aktivitäten GivenName, LastName, Address und RandomNumber.