Je cherche un moyen de convertir par lots une série de fichiers .csv
en .xlsx
à l'aide de la ligne de commande.
J'ai essayé plusieurs types de VBScripts que j'ai trouvés, mais ils semblent tous convertir .xlsx
en .csv
et non l'inverse.
Voici le plus proche que j'ai pu trouver mais là encore c'est .xlsx
à .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"
Des idées?
la seule condition requise est que le ".csv" soit en minuscule dans le nom du fichier:
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!"
Disclaimer: J'ai écrit CSV2XLSX en open-source à https://gitlab.com/DerLinkshaender/csv2xlsx
Vous voudrez peut-être essayer un outil externe comme celui ci-dessus. Pourquoi?
Avantages:
Pour Windows, j'ai récemment répondu à une question similaire sur SuperUser.com.
https://superuser.com/a/1011154/326177
Je pense que Total CSV Converter est l’option la moins chère avec le plus de fonctionnalités. Il ne nécessite même pas l'installation d'Excel et peut générer des données CSV au format JSON, Access, DBF, XML ou SQL.
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
Êtes-vous sous Windows ou Linux/Mac?
Je pourrais avoir une solution pour vous de toute façon.
Voici la solution à vos problèmes sans les programmes commentés ci-dessous:
EDIT Voici donc la solution de base:
Fondamentalement, vous appliquez un filtre (qui dans le cas serait le filtre xlsx) à partir du répertoire où se trouve votre fichier.
Nvm cela, je viens de voir que vous utilisez Windows ./directory --headless --convert-to xlsx: "Calc MS Excel 2007 XML" fichier.csv
dans ce cas, "Calc MS Excel 2007 XML" est le filtre.
Cela fonctionne pour des fichiers uniques, laissez-moi ajouter un lot dans une seconde.
Voici un outil open-source pour les machines Windows que j'ai créé à l'aide des bibliothèques NPOI qui permet de convertir des fichiers délimités simples en conversions XLS/XLSX sans que Excel ait besoin d'être installé sur la machine. Le binaire est dans Bin/Debug si vous ne voulez pas le construire vous-même. Toutes les bibliothèques nécessaires sont incluses dans l'exécutable afin qu'il puisse fonctionner de manière autonome.