Das Konvertieren von Microsoft Excel-Arbeitsblättern (XLS-Dateien) in kommagetrennte Dateien (CSVs) ist relativ einfach, wenn Sie ein Office-Produkt verwenden, aber es könnte für Programmierer eine langwierige Aufgabe sein, dies in der Befehlszeile zu tun. Die Situation kann auftreten, wenn Sie eine XLS-Datei haben und die Datenbank nach dem Formatieren der Daten füllen müssen. Die Konvertierung von XLS in CSV ist hier der ideale Weg, da das CSV-Format leicht in jeder Sprache bearbeitet werden kann, sei es Shell, Perl, Ruby, Python oder Java. In diesem Beitrag werden wir die besten Möglichkeiten sehen, die XLS-Datei in CSV zu konvertieren, und wir werden auch die Vor- und Nachteile der Verwendung dieser Methoden besprechen.

Katzendoc (in C)

Das erste Kommandozeilenwerkzeug, über das wir sprechen werden, ist catdoc. Das Tool wird von VB Vagner in C geschrieben.

1.1 Wie man es installiert:

Laden Sie das Tool von hier herunter. Gehe zu deinem Download-Verzeichnis und entpacke es. Sie können die folgenden Befehle verwenden (falls Sie ein Problem haben):

 gunzip catdoc-0.94.2.tar.gz tar xvf catdoc-0.94.2.tar 

Jetzt haben wir ein catdoc-0.94.2 Verzeichnis. Gehen Sie in dieses Verzeichnis und führen Sie die folgenden Befehle aus, um es zu installieren:

 ./configure make make install 

Die Installation ist ein einfacher Vorgang und Sie sollten hier kein Problem haben.

1.2 Wie man es benutzt:

Es gibt mehrere Möglichkeiten, den Befehl auszuführen. Ich werde die Optionen angeben, die am besten für die Microsoft Excel-Konvertierung funktionieren:

 xls2csv -x "Path_of_Your_XLS_File" -s cp1252 -d 8859-1> "Path_of_Your_CSV_File" 

Beachten Sie die Option " -s " und " -d " (steht für Quelle und Ziel). Mit diesen Optionen wird festgelegt, welche Zeichencodierung in der Quelldatei verwendet wird und welche Zeichencodierung für die Zieldatei verwendet wird. Hier habe ich cpl1252 verwendet, das ist die Microsoft-Zeichenkodierung und 8859-1, die für westeuropäische Zeichenkodierung verwendet wird. Sie können die anderen verfügbaren Optionen verwenden, indem Sie den Befehl help verwenden.

 xls2csv --hilfe 

1.3 Vor- und Nachteile:

Vorteile : Einfache Installation

Nachteile : Keine selektive Konvertierung in einem Szenario mit mehreren Blättern, es konvertiert alle in der xls-Datei vorhandenen Blätter (eine Lösung wäre, explizit eine Fußzeile in jedem Blatt anzugeben und dann die Option -b im Befehl zu verwenden), Probleme mit wenigen europäischen Zeichen. Problem mit Datumsfeldern (die Datumsfelder sind oft durcheinander), verwirren mit Anführungszeichen.

xls2csv (in Perl)

Das zweite Tool, über das wir sprechen werden, ist ein Perl-Skript xls2csv, das von Ken Prows in Perl geschrieben wurde.

2.1 Wie man es installiert:

Laden Sie das Skript hier herunter. Gunzip und tar wie im vorherigen Abschnitt und gehen Sie das extrahierte Verzeichnis und verwenden Sie die folgenden Befehle, um es zu installieren:

 perl Makefile.PL make make test make installieren 

Denken Sie daran, dass dieses Perl-Skript eine Reihe anderer Perl-Module verwendet:

 Gebietsschema :: Recode Unicode :: Map Spreadsheet :: ParseExcel Text :: CSV_XS 

Bei der Installation von xls2csv wird der Fehler angezeigt, dass die genannten Perl-Module nicht installiert wurden. Sie werden aufgefordert, die Module herunterzuladen. Downloaden und installieren Sie diese Module, wenn Sie gefragt werden. Alle diese Modulinstallation erfordert Root-Rechte. Wenn Sie keinen Root-Zugriff haben, sollten Sie die Anweisungen befolgen, um ein Perl-Modul zu installieren.

2.2 Wie man es benutzt:

Der folgende Befehl kann verwendet werden, um Microsoft Excel in CSV zu konvertieren:

 xls2csv -x "Path_of_Your_XLS_File" -b cp1252 -w Arbeitsblattname -c "Path_of_Your_CSV_File" -a 8859-1 

Mit den Optionen x und c (also xls und csv) werden die Ein- und Ausgabedateien angegeben, wobei b und a (also vorher und nachher) zur Angabe der jeweiligen Zeichencodierung verwendet werden. Wir verwenden dieselbe Zeichencodierung wie im vorherigen Tool.

2.3 Vor- und Nachteile:

Vorteile : Gut mit westeuropäischen Zeichenumwandlungs- und Datumsfeldern, unterstützt selektive Mehrblattkonvertierung,

Nachteile : Mehrere Perl-Module müssen installiert werden, die erste Zelle sollte nicht leer sein (sonst überspringt sie die ganze Zeile), übersät mit Anführungszeichen

Es gibt noch ein paar andere Möglichkeiten. Einige Skripte in Python und Java sind ebenfalls verfügbar, aber sie sind nicht so gut wie die hier besprochenen. Ich hoffe, der Artikel löst Ihr Problem. Frage und Anregungen sind immer willkommen. Prost :)