Convertir des .CSV pour .XLSX utilisant la ligne de commande
Je suis à la recherche d'un moyen de convertir par lots des une série de .csv
fichiers .xlsx
à l'aide de la ligne de commande.
J'ai essayé un tas de différents VBScripts que j'ai trouvé, mais ils semblent tous être de la conversion .xlsx
à .csv
et non l'inverse.
Ici est le plus proche que j'ai pu trouver mais c'est encore .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?
Vous devez vous connecter pour publier un commentaire.
seul pré-requis est que le ".csv" doit être en minuscules dans le nom de fichier:
Replace(WB.FullName, ".csv", ".xlsx", 1, -1, vbTextCompare)
et vous n'avez pas besoin de vous soucier de cas. OuReplace(LCase(WB.FullName), ".csv", ".xlsx")
.LCase()
parce que le nom de fichier de sortie est alors en bas de casse. Pédant, je sais, mais hé ho....SaveAs
méthode dans Excel pour enregistrer une copie du fichier au format CSV - il ne suffit pas de renommer le fichier, ce qui évidemment ne fonctionne pas. L'exemple que vous avez évoqué aussi n'est-ce pas un script qui sera exécuté dans la ligne de commandeAvertissement: j'ai écrit CSV2XLSX disponible en open-source à https://gitlab.com/DerLinkshaender/csv2xlsx
Vous souhaiterez peut-être essayer un outil externe comme ci-dessus. Pourquoi?
Avantages:
csv2xlsx_amd64.exe -colsep ";" -sheet "data" -outfile "%1.xlsx" -infile "%1"
pause
. Le résultat peut paraître un peu moche (j'adorerais avoir une police paramètre Tahoma au lieu de Verdana), mais il semble faire du bon travail. Le rendement est correct aussi. Pas très rapide, mais je n'appellerais pas ça lent. J'ai juste eu un (très bête) question : essayé d'utiliser "-noheader oui" tout en noheader n'utilise aucun paramètre, ce qui a entraîné une erreur incorrect (fichier d'entrée n'existe pas.)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 d'Excel doit être installé et peut de sortie des données au format CSV, JSON, Access, DBF, XML ou SQL.
http://www.coolutils.com/TotalCSVConverter
Vous êtes sur Windows ou Linux/Mac?
J'ai peut-être une solution pour vous de toute façon.
Voici la solution à vos problèmes sans les programmes commentée ci-après:
https://social.msdn.microsoft.com/Forums/en-US/74df1378-7c0c-4c0f-b174-fa97a5c2969b/convert-csv-to-xlsx?forum=Vsexpressvb
MODIFIER
Voici donc la solution de base:
Fondamentalement, vous appliquez un filtre (qui, dans le cas où serait le xlsx filtre) à partir du répertoire où se trouve votre fichier.
Nvm ce que je viens de voir que vous êtes sur Windows
./annuaire, sans tête-convertir-pour xlsx:"Calc MS Excel 2007 XML de fichier".csv
dans ce cas, "Calc MS Excel 2007 XML" est le filtre.
Qui fonctionne pour les fichiers unique, permettez-moi d'ajouter lot en une seconde.
Voici un outil open-source pour les machines Windows, j'ai créé à l'aide de la NPOI bibliothèques qui n'simple fichier délimité en XLS/XLSX conversions sans Excel besoin d'être installé sur la machine. Le binaire est dans Bin/Debug si vous ne voulez pas construire vous-même. Toutes les bibliothèques nécessaires sont inclus dans l'exécutable de sorte qu'il peut fonctionner de manière autonome.
https://github.com/nmolinos/csv2excel