Free Trial

Forum - Deutsch

Suchen Sie nach Antworten, stellen Sie Fragen und teilen Sie Ihr Alteryx-Wissen.
GELÖST

Output in mehrere Excel-Dateien mit formatierter Vorlage?

Hallo zusammen,

 

folgender Usecase beschäftigt uns derzeit und ihr habt hoffentlich einen Lösungsansatz für uns.

 

Der Workflow soll mehrere Output-Dateien generieren. Die Anzahl der Dateien ist dabei vom Datenbestand abhängig und somit variabel. Die Ausgabe soll als xlsx-Format erfolgen und auf Basis eines formatierten Templates (bestimmtes Zahlenformat, hervorgehobene Zeilen und Spalten, Spaltenüberschriften, Kopf- und Fußzeilen, etc.) erfolgen. 

 

Zur Umsetzung legen wir mittels Formel-Tool eine Spalte mit dem dynamischen Dateinamen der jeweiligen Excel-Tabelle an (Dateiname setzt sich aus einer Variablen in den Daten (hier: eine Gesellschaftsnummer [Ges-Nr.]) sowie einer vorgegebenen Bezeichnung zusammen; siehe Screenshot). Im Outputtool haben wir auf den formatierten Bereich des Excel-Templates referenziert und ausgewählt, dass die Formatierung beim Überschreiben beibehalten werden soll (siehe zweiten Screenshot).

 

Als Ergebnis werden zwar alle Excel-Tabellen angelegt, jedoch vollständig ohne Formatierung... 

 

Habt ihr eine Idee? Vorab vielen Dank.

11 ANTWORTEN 11
RolandSchubert
16 - Nebula
16 - Nebula

Hallo @M_Schieritz ,

 

ergänze in der Festlegung des Pfad-/Datei-/Tabellen--Namen doch mal den Range, also "$A1:Z10000". Durch "Gesamten Dateipfad ändern" wird auch der angegebene Bereich überschrieben. Die Formel für [Pfad] würde dann

".\Output\" + [Ges-Nr.] + "_AbstimmungLohnsummen.xlsx|||Tabelle1$A1:Z100000" lauten, danach sollte es hoffentlich funktionieren.

 

Viele Grüße

 

Roland

 

 

 

 

Hallo @RolandSchubert,

 

danke für die schnelle Rückmeldung und den Lösungsansatz. Wir haben das gestern Abend noch ausprobiert - leider ohne Erfolg. 

 

Ich vermute, dass dies mit dem "klassischen" Outputtool auch ein Problem wird. Wenn lediglich in eine bestimmte Datei geschrieben werden soll und diese als Formatvorlage vorhanden ist, werden die Daten konkret in dieser Datei abgelegt. Der Unterschied bei unserem Vorgehen ist, dass wir lediglich die Vorgabe machen die Daten in "einer" Excel-Tabelle abzulegen - eine Formatvorlage wird bei diesem Vorgehen m.E. gar nicht angesprochen, so dass auch kein Layout übernommen werden kann. 

 

Gäbe es ggf. über die diversen Berichtstools noch einen alternativen Weg?

 

VG, Marcus

RolandSchubert
16 - Nebula
16 - Nebula

Hallo Marcus,

 

ich sehe in diesem Fall zwei alternative Ansätze:

- mit Excel ein Template erstellen, vor dem Output Data Tool dieses Template für jede benötigte Datei kopieren (Run Command Tool) und so die Dateien erzeugen, die dann anschließend mit Daten gefülllt werden

- mit den Reporting Tools (Table, ggf. Report Text /Layout und Render). Dabei müsste die Formatierung im Table Tool erledigt werden. Im Table Tool muss dann als "Group By" die Gesellschaft eingestellt werden (so wird für jede Gesellschaft eine eigene Tabelle erstellt) und im Render Tool eingestellt werden, dass die Ausgabe in eine Datei erfolgen und dabei gruppiert werden soll. Die Gesellschaftsnummer kann dann den Dateinamen ersetzen oder angehängt werden (z.B. könnte auch der "Pfad", den Du ja schon zusammengebaut hast, zur Gruppierung benutzt werden). Das sieht dann ungefähr so aus:

 

2022-04-06_13-59-11.jpg

 

Überlege doch mal, welche Variante für den konkreten Fall geeigneter wäre, ich kann dann gern noch etwas genauer beschreiben, was genau getan werden muss.

 

Viele Grüße

 

Roland

Hallo @RolandSchubert ,

 

danke für die Vorschläge. Ich würde gerne mehr über die erste Variante erfahren (RunCommandTool / Befehl ausführen). Wenn ich das richtig verstehe, müsste ich zunächst eine *.bat Datei erzeugen, die die jeweiligen Excel-Dateien auf Basis des Formatierten Templates erzeugt und ablegt (m.E. Schritt 1: unter "Ausgabe" im RunCommandTool die *.bat Datei erzeugen (Template öffnen und dann "speichern unter" dem angegebenen Pfad; beim Code muss ich leider passen...) und dann Schritt 2: diese *.bat Datei dann als "externes Programm" ausführen). Mit dem Outputtool werden dann die Daten in die bereits vorhandenen Excel-Dateien (je Gesellschaft) geschrieben.

Liege ich da richtig? Hättest du eine Idee wie der batch-code lauten könnte bzw. einen hilfreichen Link wo ich nachschauen könnte? 

Vorab vielen Dank 🙂!

RolandSchubert
16 - Nebula
16 - Nebula

Hallo @M_Schieritz ,

 

ich benutze die Variante häufige mal, weil ich damit die gewohnte Excel-Formatierung nutzen kann - hat ja durchaus Vorteile.

 

Ich zeige mal an einem Beispiel, wie das geht:

 

2022-04-08_13-39-20.jpg

 

Wir brauchen ein Formula-Tool, das jetzt zusätztlich zum Pfad, der ja für die Ausgabe gebraucht wird, noch ein COPY-Command aufbaut. Ich gehe jetzt mal davon aus, dass Du zusätzlich zum Output-Verzeichnis noch ein Template-Verzeichnis erstellst, in dem die Template-Excel-Datei abgelegt wird. 

 

Danach kommt es auf die Reihenfolge an: Zuerst die .bat-Datei erstellen, dann ausführen = Kopien erstellen und schließlich Daten in die kopierten Templates schreiben. Das geht mit dem Block Until Done Tool.

 

Beim Erstellen der BAT-Datei sollte jede Zieldatei nur einmal auftauchen, deswegen das Unique-Tool. Außerdem soll natürlich nur der COPY-Befehl weggeschrieben werden, alles anderen Felder werden mit dem Select-Tool ausgeschlossen.

 

Das Run Command Tool führt dann einfach nur noch die Befehlsdatei aus. Wichtig: Eine Output-Datei wird gebraucht, ich trage immer eine Dummy-Datei ein.

 

Dann können die Daten in die jeweilige Datei geschrieben werden (das hattest Du ja eigentlich schon).

 

Ich habe den Beispiel-Workflow angehängt. Die Dateistruktur sollte so aussehen; die markierten Dateien werden vom Workflow erstellt.

 

2022-04-08_13-53-13.jpg

 

Schau doch mal, ob das so für Dich passt.

 

Viele Grüße

 

Roland

Hallo @RolandSchubert ,

 

vielen Dank für die umfassende Antwort und den bereitgestellten Beispiel-Workflow.

 

Urlaubsbedingt werde ich mir das intensiver nach den Feiertagen ansehen können.

 

Ich melde mich dann umgehend zurück.

 

Schöne Ostern!

 

VG,
Marcus

Georg_F
Alteryx
Alteryx

Moin @M_Schieritz ,

 

anbei mal eine mögliche Lösung ohne Batch-Datei. Hier wird das Blob-Tool verwendet. Es ließt Dateien (hier ein Excel-Template) und schreibt es mit einem neuen Namen raus. Der Name kann aus dem Workflow kommen (wie hier im Beispiel). Anschließend werden die Templates mit Daten gefüllt. Das Beispiel entstammt von einem der Inspire Vorträge (von Nicole J.). 

Ich hoffe, dies Beispiel hilft weiter. 

StephV
Alteryx Alumni (Retired)

Hallo @M_Schieritz,


Vielen Dank für Ihre Frage. Wenn Ihnen die Antwort von @RolandSchubert oder @Georg_F geholfen hat, könnten Sie sie als Lösung akzeptieren. Dies wird auch anderen Nutzern helfen.


Vielen Dank!

Steph Vitale-Havreng
Biggi
Asteroid

Hallo zusammen,

habe einen ähnlich gelagerten Fall. Das Kopieren der Dateien mit der von @RolandSchubert vorgeschlagenen Methode klappt eigentlich.... nur habe ich leider in meinem Verzeichnis auch Leerzeichen. Dadurch läuft die bat-Datei beim Ausführen auf einen Fehler.

Das Verzeichnis darf ich umbenennen. 😭

Wie muss ich den Copy-Befehl anpassen, um die Leerzeichen richtig einzufangen?

 

Beispiel, das funktioniert:

'COPY ' + "C:\Temp\Template\Zuordnung_PRK_AMW_Master.xlsx"+ " " + "C:\Temp\Output\"+[KST-Zuordnung]+"_Zuordnung_PRK_AMW.xlsx /y"

 

Bsp, das wg. Leerzeichen auf Fehler läfut
'COPY ' + "C:\Temp\Template Neu\Zuordnung_PRK_AMW_Master.xlsx"+ " " + "C:\Temp\Output\"+[KST-Zuordnung]+"_Zuordnung_PRK_AMW.xlsx /y" 

 

Hab schon mit den Gänsefüßchen herumexperimentiert... aber leider erfolglos.

Ist vermutlich nur ne Kleinigkeit.

 

Danke für eure Hilfe!

 

viele Grüße Birgit

Beschriftungen