Szukam sposobu, aby szybko przekonwertować katalog plików .csv do formatu .xls lub .xlsx (byłoby miło, gdybym mógł zrobić / lub).
Czy istnieje prosty sposób, aby to zrobić, czy muszę zainstalować program innej firmy?
Szukam sposobu, aby szybko przekonwertować katalog plików .csv do formatu .xls lub .xlsx (byłoby miło, gdybym mógł zrobić / lub).
Czy istnieje prosty sposób, aby to zrobić, czy muszę zainstalować program innej firmy?
Odpowiedzi:
Zakładając, że lubisz i masz Python (z jakiegoś powodu), możesz użyć tego skryptu:
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')
Uruchomiony w katalogu ze wszystkimi plikami CSV, przekonwertuje je wszystkie i uderzy „.xls” na koniec.
W przypadku programu Excel 2007+ (pliki xlsx) obsługującego do około 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')
W twoim pytaniu pozostało wiele do powiedzenia.
Zakładając, że twoje pliki CVS mają strukturę katalogów podobną do
c:\randompath\CSV\
a.csv
b.csv
c.csv
:
:
z.csv
i chcesz skończyć z
c:\randompath\XLS\
a.xls
b.xls
c.xls
:
:
z.xls
Mogę wymyślić trzy drogi do przejścia w zależności od stosunku pracy z góry do prac porządkowych, które jesteś gotów wykonać.
Zauważ, że nie napisałem jeszcze żadnego kodu, aby wykonać te czynności (jeszcze). Po prostu oferuję pomysły na punkt wyjścia. Być może, jeśli możesz podać więcej szczegółów na temat tego, czego chcesz, możesz uzyskać bardziej szczegółowe wyjaśnienia dotyczące sposobu podejścia ode mnie lub innego członka forum.
Dla Windowsa? Wersja wiersza polecenia CoolUtils „ Total CSV Converter ” obsługuje wiele formatów wyjściowych, w tym JSON, Access, DBF, XML i SQL i kosztuje tylko 40 USD. Może rekursować podkatalogi, usuwać oryginalne pliki CSV, łączyć wszystkie pliki w jeden dokument i nie tylko.
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
„ Advanced CSV Converter ” (40-200 USD) to przenośny plik EXE, który może to zrobić szybko i bez konieczności instalowania programu Excel.
http://www.dbf2002.com/csv-converter/commandline.html
"c:\Program Files\CSV Converter\csvcnv.exe" c:\base\*.csv c:\exports\ /TOXLSX /SRCHDR
„ Konwertuj XLS ” SoftInterface może korzystać z Excela (ale nie jest to wymagane) i jest droższy (500 $ +), ale obsługuje więcej formatów i ma więcej opcji.
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 ” to program do obsługi arkuszy kalkulacyjnych typu open source, który może wykonywać bezpośrednią konwersję, ale został wycofany dla systemu Windows w sierpniu 2014 roku.
ssconvert file.csv file.xlsx
Jeśli masz zainstalowany Python, „ csv2odf ” jest opcją typu open source i wykorzystuje szablonowe podejście do generowania plików ods, odt, html, xlsx lub docx.
http://sourceforge.net/projects/csv2odf/
csv2odf data.csv template.odt output.xlsx
Z Node 8+ i bash:
npm install -g pguardiario/csv2xlsx
for file in *.csv; do csv2xlsx "$file"; done