Je cherche un moyen de convertir rapidement un répertoire de fichiers .csv au format .xls ou .xlsx (ce serait bien si je pouvais le faire/ou).
Existe-t-il un moyen simple de faire cela ou dois-je installer un programme tiers?
En supposant que vous aimez et avez Python (pour une raison quelconque), vous pouvez utiliser ce script que j'ai préparé:
import os
import glob
import csv
import xlwt # from http://www.python-Excel.org/
for csvfile in glob.glob(os.path.join('.', '*.csv')):
wb = xlwt.Workbook()
ws = wb.add_sheet('data')
with open(csvfile, 'rb') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, val in enumerate(row):
ws.write(r, c, val)
wb.save(csvfile + '.xls')
Ran dans le répertoire avec tous les fichiers CSV, il va les convertir tous et slap un ".xls" sur la fin.
Pour Excel 2007+ (fichiers xlsx) prenant en charge environ 1 Mrows:
import os
import glob
import csv
import openpyxl # from https://pythonhosted.org/openpyxl/ or PyPI (e.g. via pip)
for csvfile in glob.glob(os.path.join('.', '*.csv')):
wb = openpyxl.Workbook()
ws = wb.active
with open(csvfile, 'rb') as f:
reader = csv.reader(f)
for r, row in enumerate(reader, start=1):
for c, val in enumerate(row, start=1):
ws.cell(row=r, column=c).value = val
wb.save(csvfile + '.xlsx')
Here est un script Perl qui le fait soi-disant, mais il semble que beaucoup de travail soit fait pour faire quelque chose qui est déjà intégré dans Excel.
Il y a beaucoup de choses non dites dans votre question.
En supposant que vos fichiers CVS se trouvent dans une structure de répertoires similaire à
c:\randompath\CSV\
a.csv
b.csv
c.csv
:
:
z.csv
et vous voulez vous retrouver avec
c:\randompath\XLS\
a.xls
b.xls
c.xls
:
:
z.xls
Je peux penser à trois itinéraires à suivre en fonction du ratio travail initial/travail de nettoyage que vous êtes prêt à effectuer.
Notez que je n'ai pas encore écrit de code pour faire ces choses, je ne fais que proposer des idées pour un point de départ. Peut-être que si vous pouviez donner plus de détails sur ce que vous voulez, vous pourriez obtenir des explications plus détaillées sur la façon de gérer l'approche de moi-même ou d'un autre membre du forum.
Pour les fenêtres? CoolUtils " Total CSV Converter " version en ligne de commande prend en charge de nombreux formats de sortie , notamment JSON, Access, DBF, XML et SQL. et n’est que de 40 $. Il peut ré-numériser des sous-répertoires, supprimer des fichiers CSV d'origine, combiner tous les fichiers en un seul document, etc.
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
" Advanced CSV Converter " ($ 40-200) est un fichier EXE portable qui peut le faire rapidement et sans avoir à installer Excel.
http://www.dbf2002.com/csv-converter/commandline.html
"c:\Program Files\CSV Converter\csvcnv.exe" c:\base\*.csv c:\exports\ /TOXLSX /SRCHDR
" Convert XLS " de SoftInterface peut utiliser Excel (mais n'est pas obligatoire) et est plus cher (plus de 500 $), mais prend en charge davantage de formats et dispose de plus d'options.
http://www.softinterface.com/Convert-XLS/Convert-XLS.htm
"c:\Program Files (x86)\Softinterface, Inc\Convert XLS\ConvertXLS.exe" /V /S"c:\base\*.csv" /T"c:\exports\*.xlsx" /F6 /C51 /M2
" Gnumeric " est un programme de feuille de calcul open source pouvant effectuer une conversion directe, mais il a été arrêté pour Windows en août 2014.
ssconvert file.csv file.xlsx
Si vous avez installé Python, " csv2odf " est une option open source et utilise une approche basée sur un modèle pour générer ods, odt, html, xlsx ou docx. des dossiers.
http://sourceforge.net/projects/csv2odf/
csv2odf data.csv template.odt output.xlsx