ConvertToCSV.NET

Gespeichert von Michael Kirgus am Mi., 05.10.2016 - 18:04

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.

 

Neuen Kommentar hinzufügen

Sind Sie ein Mensch? Schlimm, aber leider notwendig:
Bild-CAPTCHA
Geben Sie die Zeichen ein, die im Bild gezeigt werden.