- Beiträge: 23
Erweiterung des Funktionsumfangs - Name des Worksheets als Variable (readonly)
- Jan Brandenburger
- Autor
- Offline
- Benutzer
Weniger
Mehr
3 Jahre 1 Monat her - 3 Jahre 1 Monat her #4377
von Jan Brandenburger
Erweiterung des Funktionsumfangs - Name des Worksheets als Variable (readonly) wurde erstellt von Jan Brandenburger
Lieber Herr Stark,
wir haben derzeit folgendes Szenario, welches das Verarbeiten des Namen des Worksheets im Verarbeitungsprozess erforderlich macht
Fakt 1: gegeben ist ein xlsx-File mit ca. 24 Tabellenblättern, wovon jedes Tabellenblatt im Namen das folgende Schema hat „Pers-Zu-Ist Unternehmen %Name des Unternehmens% %Monat%“ (Pers-Zu-Ist Unternehmen Unternehmen A August)
Fakt 2: Jedes der 24 Tabellenblätter, welches identisch aufgebaut ist, soll in eine MSSQL-Datenbank überführt werden.
Fakt 3: Es kann sein, dass Unternehmen dazu kommen oder Unternehmen entfallen. Weiterhin steht in den Daten pro Tabellenblatt der Name des Unternehmens nicht, sodass wir diesen zwingend aus dem Namen des Tabellenblattes auswerten müssen.
Nun könnte ich mir also eine statische Liste in der cmd bauen mit „Sheet= Pers-Zu-Ist Unternehmen Unternehmen A August“ usw., aber das wäre extrem statisch und somit nicht zuverlässig.
Gesucht wäre also eine „globale Variable“, die ich nicht setzen brauche, sondern in FlowHeater „nur“ abfragen kann (also readonly) und die den Namen des Worksheets enthält, welches gerade verarbeitet wird.
Bisher hatte ich versucht mittels .net Script Heater über Interops.Excel den Namen des Worksheets zu laden, das dauert aber ewig, weil es pro Zeile passiert.
Vielleicht haben Sie einen Ansatz.
Vielen Dank!
Jan Brandenburger
wir haben derzeit folgendes Szenario, welches das Verarbeiten des Namen des Worksheets im Verarbeitungsprozess erforderlich macht
Fakt 1: gegeben ist ein xlsx-File mit ca. 24 Tabellenblättern, wovon jedes Tabellenblatt im Namen das folgende Schema hat „Pers-Zu-Ist Unternehmen %Name des Unternehmens% %Monat%“ (Pers-Zu-Ist Unternehmen Unternehmen A August)
Fakt 2: Jedes der 24 Tabellenblätter, welches identisch aufgebaut ist, soll in eine MSSQL-Datenbank überführt werden.
Fakt 3: Es kann sein, dass Unternehmen dazu kommen oder Unternehmen entfallen. Weiterhin steht in den Daten pro Tabellenblatt der Name des Unternehmens nicht, sodass wir diesen zwingend aus dem Namen des Tabellenblattes auswerten müssen.
Nun könnte ich mir also eine statische Liste in der cmd bauen mit „Sheet= Pers-Zu-Ist Unternehmen Unternehmen A August“ usw., aber das wäre extrem statisch und somit nicht zuverlässig.
Gesucht wäre also eine „globale Variable“, die ich nicht setzen brauche, sondern in FlowHeater „nur“ abfragen kann (also readonly) und die den Namen des Worksheets enthält, welches gerade verarbeitet wird.
Bisher hatte ich versucht mittels .net Script Heater über Interops.Excel den Namen des Worksheets zu laden, das dauert aber ewig, weil es pro Zeile passiert.
Vielleicht haben Sie einen Ansatz.
Vielen Dank!
Jan Brandenburger
Letzte Änderung: 3 Jahre 1 Monat her von Jan Brandenburger.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 1 Monat her #4378
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Erweiterung des Funktionsumfangs - Name des Worksheets als Variable (readonly)
Hallo Herr Brandenburger,
vielen Dank für Ihre Anfrage. Mit der aktuellen BETA Version wurde das umgesetzt. Mit dieser Version können Sie im Excel Adapter für den Arbeitsblattnamen (Worksheet) auch den Stern als Wildcard verwenden.
z.B.
„*“ werden alle vorhandenen Tabellenblätter gelesen.
„A*“ werden alle Tabellenblätter gelesen die mit „A“ beginnen.
„*test*“ werden nur Tabellenblätter gelesen in denen im Namen „test“ vorkommt.
Die Arbeitsblätter müssen natürlich alle das gleiche Format aufweisen. Falls dynamische Spaltenzuordnung aktiviert ist können die Spalten auf den einzelnen Arbeitsblättern an unterschiedlichen Stellen vorkommen.
Den aktuellen Worksheet Namen können Sie sich in der Definition über ein kleines Skript für den .NET Script Heater auslesen, im Anhang finden Sie ein kleines Beispiel.
Die aktuelle BETA Version können Sie über folgenden Link herunterladen: BETA Version Download
C# Skript um aktuellen Excel Worksheet zu ermitteln
vielen Dank für Ihre Anfrage. Mit der aktuellen BETA Version wurde das umgesetzt. Mit dieser Version können Sie im Excel Adapter für den Arbeitsblattnamen (Worksheet) auch den Stern als Wildcard verwenden.
z.B.
„*“ werden alle vorhandenen Tabellenblätter gelesen.
„A*“ werden alle Tabellenblätter gelesen die mit „A“ beginnen.
„*test*“ werden nur Tabellenblätter gelesen in denen im Namen „test“ vorkommt.
Die Arbeitsblätter müssen natürlich alle das gleiche Format aufweisen. Falls dynamische Spaltenzuordnung aktiviert ist können die Spalten auf den einzelnen Arbeitsblättern an unterschiedlichen Stellen vorkommen.
Den aktuellen Worksheet Namen können Sie sich in der Definition über ein kleines Skript für den .NET Script Heater auslesen, im Anhang finden Sie ein kleines Beispiel.
Die aktuelle BETA Version können Sie über folgenden Link herunterladen: BETA Version Download
C# Skript um aktuellen Excel Worksheet zu ermitteln
Code:
public object DoWork()
{
ExcelAdapter e = (ExcelAdapter)AdapterRead;
return e.SheetName;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Jan Brandenburger
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 23
3 Jahre 1 Monat her #4379
von Jan Brandenburger
Jan Brandenburger antwortete auf Erweiterung des Funktionsumfangs - Name des Worksheets als Variable (readonly)
Hallo Herr Stark,
wir konnten das Beta-Release mit meinem Kollegen erfolgreich testen.
Die Implementierung übersteigt ja den geforderten Funktionsumfang in der Form, dass wir uns vorgelagerte Skripte sparen können. Prima!
Bleiben Sie gesund.
Viele Grüße
Jan Brandenburger
wir konnten das Beta-Release mit meinem Kollegen erfolgreich testen.
Die Implementierung übersteigt ja den geforderten Funktionsumfang in der Form, dass wir uns vorgelagerte Skripte sparen können. Prima!
Bleiben Sie gesund.
Viele Grüße
Jan Brandenburger
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.267 Sekunden