J'ai un fichier Excel avec 20 feuilles dessus. Existe-t-il un moyen de convertir rapidement le fichier en 20 fichiers CSV - un pour chaque feuille?
Bien sûr, je peux le faire manuellement, mais je devrai traiter beaucoup de fichiers. Ce serait donc formidable de disposer d'un utilitaire de ligne de commande (ou même de commutateurs de ligne de commande Excel).
La méthode de vembutech est une solution nettement plus raffinée. Voici une macro VBA légère qui exporterait toutes les feuilles d'un classeur.
Va dans le dossier des classeurs actifs tous les noms sont workbookname_sheetname.csv
Sub exportcsv()
Dim ws As Worksheet
Dim path As String
path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
ws.Activate
ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
Next
End Sub
Pour le commentaire. La macro d'origine utilise simplement la fonction de sauvegarde en tant que (ce qui revient à fermer l'original). Si vous souhaitez effectuer cette opération tout en laissant l'original ouvert, vous devez copier dans un nouveau classeur, enregistrer et fermer le nouveau.
Sub exportcsv()
Dim ws As Worksheet
Dim path As String
path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close False
Next
End Sub
Au lieu du script batch, vous pouvez utiliser le convertisseur de XLS à CSV , ce qui vous donnerait une meilleure interface utilisateur.
Lien direct: http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.Zip
Décompressez le fichier .HTA.
Double-cliquez sur le fichier .HTA.
Localisez le dossier où vous avez votre fichier xls
sélectionnez le schéma de nommage csv et cliquez sur démarrer la conversion pour convertir tous les fichiers xls du dossier en fichiers csv
Si votre dossier contient 3 fichiers xls avec 3 feuilles, il créera 9 fichiers CSV pour chaque feuille et vous pourrez identifier le fichier CSV avec un schéma de nommage CSV.
J'espère que cela t'aides!
Voici un script python getsheets.py ( miroir ), vous devriez Installez pandas
et xlrd
avant de l’utiliser.
Lance ça:
pip3 install pandas xlrd # or `pip install pandas xlrd`
Comment ça fonctionne?
$ python3 getsheets.py -h
Usage: getsheets.py [OPTIONS] INPUTFILE
Convert a Excel file with multiple sheets to several file with one sheet.
Examples:
getsheets filename
getsheets filename -f csv
Options:
-f, --format [xlsx|csv] Default xlsx.
-h, --help Show this message and exit.
Convertir en plusieurs xlsx:
$ python3 getsheets.py goods_temp.xlsx
Sheet.xlsx Done!
Sheet1.xlsx Done!
All Done!
Convertir en plusieurs CSV:
$ python3 getsheets.py goods_temp.xlsx -f csv
Sheet.csv Done!
Sheet1.csv Done!
All Done!
Une macro de ExtendOffice pour enregistrer les onglets dans votre dossier Documents:
Sub ExportSheetsToCSV()
Dim xWs As Worksheet
Dim xcsvFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xcsvFile = CurDir & "\" & xWs.Name & ".csv"
Application.ActiveWorkbook.SaveAs Filename: = xcsvFile, _
FileFormat: = xlCSV, CreateBackup: = False
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next
End Sub