- 218 Aufrufe
Flexibel eine oder gleich mehrere Excel-Dateien (*.xlsx) in eine CSV-Datei konvertieren ohne Microsoft Excel?
Mein kleines Kommandozeilentool kann das und noch ein bisschen mehr:
- Umwandlung einer oder mehrerer XLSX-Dateien in eine oder mehrere CSV-Dateien
- Name des Tabellenblattes für den Export kann festgelegt werden
- Automatische Benennung der CSV-Datei analog der Quelldatei in einem anderen Verzeichnis
- Benutzerdefinierter Umwandlungsbereich (Spalten sowie Zeilen)
- Es können einzelne Werte in jeder Zeile gesucht und ersetzt, gelöscht oder an eine andere Position verschoben werden
- Umwandlung von deutschen Datumsformaten in US-Datumsformate für einen SQL-Import über Bulk-Insert
Hintergründe zur Anwendung:
Die Applikation verwendet
System.Data.OleDb.OleDbConnection
um die Excel-Datei zu öffnen. Um eine korrekte Funktion zu gewährleisten, benötigt es hierfür die Acess Database Engine.
Grundsyntax:
ConvertToCSV.NET "Quellverzeichnis des XLSX-Dateien" "Zielverzeichnis" [Argumente]
Mögliche Befehlszeilenargumente:
/IMP_R_AT:<index>
Gibt die erste Zeile an, ob welcher die Daten gelesen werden sollen.
/IMP_R_TO:<index>
Gibt die letzte Zeile an, welche noch gelesen werden soll. Wenn dieses Argument nicht angegeben wird, werden alle Zeilen ab der Startposition gelesen.
/IMP_C_AT:<index>
Gibt die erste Spalte an, welche gelesen werden soll. Wenn dieses Argument nicht angegeben wird, werden die Spalten von Anfang an verarbeitet.
/IMP_C_TO:<index>
Gibt die letzte Spalte an, welche noch gelesen werden soll. Wenn dieses Argument nicht angegeben wird, werden die Spalten bis zum Ende verarbeitet.
/FILECNTROW:<insertindex>
Fügt eine weitere Spalte an eine beliebige Position ein, welche einen Dateizähler zu jeder Zeile hinzufügt. Werden mehrere Dateien nacheinander abgearbeitet, würde bei der 3. Datei hier eine 3 in jeder Zeile stehen.
/FILENAMEROW:<insertindex>
Fügt eine weitere Spalte an eine beliebige Position ein, welche den Dateinamen der Quelldatei zu jeder Zeile hinzufügt.
/AUTOGENFILENAME:<True/False>
Generiert den Ausgabedateinamen im Format %Quelldatei%.%Dateierweiterung%.csv
/FILE_D_INDEX:<insertindex>
Fügt eine weitere Spalte an eine beliebige Position ein, welche das Erstelldatum der Quelldatei zu jeder Zeile hinzufügt.
/FILE_D_E_INDEX:<insertindex>
Fügt eine weitere Spalte an eine beliebige Position ein, welche das Bearbeitungsdatum der Quelldatei zu jeder Zeile hinzufügt.
/FILE_I_INDEX:<insertindex>
Fügt eine weitere Spalte an eine beliebige Position ein, welche das Importdatum (das jetzige Datum des Systems) der Quelldatei zu jeder Zeile hinzufügt.
/FIXED_C_SIZE:<lenght>
Verifiziert die Spaltenanzahl in jeder Zeile. Wenn weniger Werte in einer Zeile vorhanden sind, als es Spalten gibt, werden die fehlenden Spaltenwerte in der Zeile aufgefüllt (ein , hinzugefügt).
/SHEETNAME:<Tabellenname>
Gibt die Tabellenbezeichnung ein, welche für den Import verwendet werden soll. Hinweis: Wenn dieses Argument nicht angegeben wird, wird der Name Tabelle1 verwendet. Eine Umwandlung von mehreren Tabellenblättern aus einer Excel-Datei wird (noch) nicht unterstützt.
/SQL_DATETIME:<True/False>
Gibt an, ob jedes Datum, welches von der Anwendung generiert wird, im US-SQL-Datumsformat generiert werden soll. Dies wirkt nur auf die von der Anwendung generierten Spalten aus.
/FILL_C_INDEX:<index>
Gibt an, dass eine Spalte eine fixe Breite hat. Hiermit kann eine Spalte auf einen beliebigen Wert aufgefüllt/abgeschnitten werden. Gibt den Spaltenindex an.
/FILL_C_SIZE:<size>
Gibt an, dass eine Spalte eine fixe Breite hat. Hiermit kann eine Spalte auf einen beliebigen Wert aufgefüllt/abgeschnitten werden. Gibt die gewünschte Länge der Spalte an.
/R_FILENAME:<True/False>
Gibt an, dass für die Pfadangabe in generierten Spalten der relative Dateipfad verwendet wird (nur Dateiname ohne Verzeichnispfad).
/P_CUST_REPLACE1:<oldvalue>:<newvalue> /P_CUST_REPLACE2:<oldvalue>:<newvalue>
Gibt benutzerdefinierte Bearbeitungsfunktionen für das Ersetzen von Werten an. Es sind 2 Argumente bei jedem Aufruf des Tools zugelassen.
/P_REMOVE1:<index>:<length> /P_REMOVE2:<index>:<length>
Gibt benutzerdefinierte Bearbeitungsfunktionen für das Löschen von Werten an. Es sind 2 Argumente bei jedem Aufruf des Tools zugelassen.
/P_CUT1:<index>:<lenght>:<insertindex> /P_CUT2:<index>:<lenght>:<insertindex>
Gibt benutzerdefinierte Bearbeitungsfunktionen für das Ausschneiden und Einfügen von Werten an. Es sind 2 Argumente bei jedem Aufruf des Tools zugelassen.
/P_INSERT1:<index>:<new> /P_INSERT2:<index>:<new> /P_INSERT3:<index>:<new> /P_INSERT4:<index>:<new>
Gibt benutzerdefinierte Bearbeitungsfunktionen für das Einfügen von Werten an. Es sind 4 Argumente bei jedem Aufruf des Tools zugelassen.
/P_SQL_DATECOLUMN1:<index> /P_SQL_DATECOLUMN2:<index>
Gibt Spalten an, welche in das US-Datumsformat konvertiert werden sollen. Es sind 2 Argumente bei jedem Aufruf des Tools zugelassen.
/P2_SQL_DATECOLUMN1:<index>
Gibt eine Spalte an, welche in einem zweiten Schritt in das US-Datumsformat konvertiert werden soll. Diese Operation wird nach dem Verarbeiten aller anderer /P-Argumente verarbeitet.
Alle Indexangaben müssen nullbasiert angegeben werden.
Das Tool steht im Downloadbereich zum Download bereit.