web-dev-qa-db-ger.com

Konvertieren Sie .CSV in .XLSX über die Befehlszeile

Ich bin auf der Suche nach einer Möglichkeit, eine Reihe von .csv-Dateien mithilfe der Befehlszeile nach .xlsx zu konvertieren.

Ich habe ein paar verschiedene VBScripts ausprobiert, die ich gefunden habe, aber sie alle scheinen .xlsx in .csv zu konvertieren und nicht umgekehrt.

Hier ist der nächste, den ich finden könnte, aber es ist wieder .xlsx zu .csv:

if WScript.Arguments.Count < 2 Then
    WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv"
    Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6
oBook.Close False
oExcel.Quit
WScript.Echo "Done"

Irgendwelche Ideen?

7
crackruckles

voraussetzung ist nur, dass ".csv" im Dateinamen klein geschrieben werden muss:

Dim file, WB

With CreateObject("Excel.Application")
    On Error Resume Next
    For Each file In WScript.Arguments
        Set WB = .Workbooks.Open(file)
        WB.SaveAs Replace(WB.FullName, ".csv", ".xlsx"), 51
        WB.Close False
    Next    
    .Quit
End With

WScript.Echo "Done!"
8
Sam

Haftungsausschluss: Ich habe CSV2XLSX als Open Source unter https://gitlab.com/DerLinkshaender/csv2xlsx verfasst.

Möglicherweise möchten Sie ein externes Tool wie das oben stehende ausprobieren. Warum?

Vorteile: 

  • kann auch verwendet werden, wenn der Windows Script Host blockiert ist.
  • betriebssystemunabhängig, so dass Sie ein bekanntes Werkzeug mit den gleichen Optionen für jedes Betriebssystem verwenden können (Gehirnspeicher speichern :-)).
  • es ist keine Installation von Excel oder LibreOffice usw. erforderlich, so dass Sie keine zusätzlichen Module oder Sprachen installieren müssen.
  • durch die Angabe mehrerer CSV-Parameter als Befehlszeilenparameter wird das Tool "SysAdmin-friendly", da es keinen Quellcode gibt.
  • sie können sogar Zeilen- oder Spaltenbereiche für die CSV-Daten angeben.
  • das Xlsx-Dateiformat ist sehr komplex. Das Schreiben ohne die Installation eines Office-Pakets ist nichts für schwache Nerven.
  • besser geeignet für die Stapelverarbeitung, da das Werkzeug in die betriebssystemspezifische Schleifenlogik integriert werden kann.
  • Ich habe versucht, unter Berücksichtigung von DevOps/SysAdmin einen nützlichen Satz von Befehlszeilenflags bereitzustellen. Viele vorhandene Skripts verfügen nicht über eine gute Kontrolle über Befehlszeilenoptionen.
7
Arminius

Für Windows habe ich kürzlich eine ähnliche Frage auf SuperUser.com beantwortet.

https://superuser.com/a/1011154/326177

Ich denke, Total CSV Converter ist die kostengünstigste Option mit den meisten Funktionen. Es muss nicht einmal Excel installiert werden, sondern kann CSV-Daten in JSON, Access, DBF, XML oder SQL ausgeben.

http://www.coolutils.com/TotalCSVConverter

CSVConverter.exe <source> <destination> <options>
1
James Moberg

Bist du unter Windows oder Linux/Mac?

Ich könnte auf jeden Fall eine Lösung für Sie haben.

Hier ist die Lösung für Ihre Probleme ohne die unten kommentierten Programme:

https://social.msdn.Microsoft.com/Forums/de/74df1378-7c0c-4c0f-b174-fa97a5c2969b/convert-csv-to-xlsx?forum=Vsexpressvb

EDIT.__ Hier ist die grundlegende Lösung:

Grundsätzlich wenden Sie einen Filter (in diesem Fall der xlsx-Filter) aus dem Verzeichnis an, in dem sich Ihre Datei befindet.

Nvm das habe ich gerade gesehen, dass Sie unter Windows sind ./directory --headless --convert-to xlsx: "Calc MS Excel 2007 XML" file.csv

in diesem Fall ist "Calc MS Excel 2007 XML" der Filter.

Das funktioniert für einzelne Dateien, lassen Sie mich Batch in einer Sekunde hinzufügen.

0
Robert Melikyan

Hier ist ein Open-Source-Tool für Windows-Maschinen, das ich mit den NPOI-Bibliotheken erstellt habe. Es führt einfache Konvertierungen zwischen XLS/XLSX-Dateien durch, ohne dass Excel auf dem Computer installiert werden muss. Die Binärdatei befindet sich in Bin/Debug, wenn Sie sie nicht selbst erstellen möchten. Alle erforderlichen Bibliotheken sind in der ausführbaren Datei enthalten, sodass sie eigenständig betrieben werden kann.

https://github.com/nmolinos/csv2Excel

0
Nico M