Artikel-Schlagworte: „CodeDOMProvider“

Excel Iterator / Restrukturierungstool

Montag, 19. April 2010

Veröffentlichung: April 2010
Programmiersprache: C# (VB.net)
Interfaces: Microsoft Office 11.0 InterOp, MSXML 6.0

Basierend auf meinem Plugin / Script System (http://www.smokingfish.de/?p=119) , einem einfachen Programm zum iterieren von Daten und div. Klassen z.B. zum automatisieren von Excel ist dieses extrem nützliche Tool entstanden.

Es ermöglicht dem Benutzer anhand einfacher C# oder VB.net Scripts aus div. Quelldaten möglichst gleicher Struktur resultierende Tabellen zu erstellen.

Zum Beispiel: Ich habe 200 Excel Files mit je 5 Tabs. Jedes Tab ist mit 200 Werten gefüllt. Diese Dateien gibt es in 3 verschiedenen Versionen. Diese Versionen untereinander sind jedoch von der Struktur identisch.
Das Tool kann nun durch definieren einer Struktur für eine fertige Datei und dem kopieren aller Werte, aller Quelldateien, eine neue Datei erstellen die nur exakt die Daten in der Struktur erhält wie ich sie gerne hätte.

Ab einer gewissen Anzahl an Werten ist ein umstrukturieren von Hand nicht mehr praktikabel, ein Makro ab einer gewissen Anzahl von Dateien ebenso nicht mehr. Hier kommt dieses Tool zum Einsatz und generiert aus den Quelldaten genau das was ich haben möchte.

Weitere Merkmale:
- Scripts verfügen über diverse Ereignisse die vor oder nach dem Start sowie bei jeder bearbeiteten Datei aufgerufen werden
- Das Script wird zur Laufzeit kompiliert und ist in der Ausführung genauso schnell wie das eigentliche Programm
- Es stehen Klassen zum Lesen und Schreiben von Excel Dateien zur Verfügung, es können aber nach dem selben Prinzip weitere Formate hinzugefügt werden
- Scripts haben vollen Zugriff auf alle relevanten Funktionen des Hauptprogramms

.Net Plugin/Scripting System

Mittwoch, 12. August 2009

Veröffentlichung: Januar 2009
Programmiersprache: C#
Sonstiges: CodeDOMProvider

Hier mal etwas ganz interessantes, eine Scripting und Plugin Engine, geschrieben in C#.
Das besondere hier ist das sie nicht VSA verwendet, eine Technik die in der aktuellen Version nicht mehr supported wird, sondern eine Mischung aus dem ICodeProvider und definierten Interfaces.

So erreiche ich das die Scripts zur Laufzeit kompiliert werden, trotzdem aber Zugriff auf das laufende Programm bekommen können, also eine vollwertige Scriptengine.

Zusäzlich ergeben sich noch ein paar weitere Einsatzmöglichkeiten:

- Scripte werden zu Laufzeit in entweder VB.net oder C# kompiliert und in der Anwendung ausgeführt
- Scripte werden als EXE/DLL gespeichert und sind alleine lauffähig (ohne Zugriff auf die Anwendung)
- Als EXE/DLL gespeicherte Scripte lassen sich wieder in der Anwendung ausführen (inkl. Zugriff auf die Anwendung)

Ohne weiteres lassen sich so Script Interfaces für alle .net Programme erstellen (z.B. zum auslagern häufig zu ändernder Funktionen) oder auch komplette Plugin Systeme.

Auf Anfrage kann die Klasse mit Beispielen zur Verfügung gestellt werden.