Я шукаю спосіб швидкого перетворення каталогу файлів .csv у формат .xls або .xlsx (було б добре, якби я міг зробити або / або).
Чи є простий спосіб це зробити чи мені потрібно встановити сторонні програми?
Я шукаю спосіб швидкого перетворення каталогу файлів .csv у формат .xls або .xlsx (було б добре, якби я міг зробити або / або).
Чи є простий спосіб це зробити чи мені потрібно встановити сторонні програми?
Відповіді:
Якщо припустити, що вам подобається і у вас є Python (чомусь), ви можете використовувати цей скрипт, який я скочував:
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')
Потрапив у каталог з усіма файлами CSV, він перетворить їх усіх і ляпає ".xls" до кінця.
Для Excel 2007+ (файли xlsx), що підтримують приблизно 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')
У вашому запитанні залишається багато, що не має відповіді.
Якщо припустити, що ваші CVS файли мають структуру каталогу, подібну до
c:\randompath\CSV\
a.csv
b.csv
c.csv
:
:
z.csv
і ти хочеш закінчити
c:\randompath\XLS\
a.xls
b.xls
c.xls
:
:
z.xls
Я можу придумати три маршрути, які потрібно пройти, залежно від співвідношення роботи на передній план та роботи з очищення, яку ви готові виконати.
Зауважте, що я не написав жодного коду, щоб зробити ці речі (я все ще пропоную ідеї для відправної точки). Можливо, якщо ви могли б дати докладнішу інформацію про те, що ви хочете, ви могли б отримати більш детальні пояснення, як поводитися з підходом від мене чи іншого члена форуму.
Для Windows? Версія командного рядка CoolUtils " Total CSV Converter " підтримує безліч вихідних форматів, включаючи JSON, Access, DBF, XML і SQL і становить лише $ 40. Він може повторювати підкаталоги, видаляти вихідні файли CSV, поєднувати всі файли в одному документі тощо.
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
" Розширений конвертер CSV " ($ 40-200) - це портативний EXE, який може робити це швидко та без встановлення Excel.
http://www.dbf2002.com/csv-converter/commandline.html
"c:\Program Files\CSV Converter\csvcnv.exe" c:\base\*.csv c:\exports\ /TOXLSX /SRCHDR
" Конвертувати XLS " SoftInterface може використовувати Excel (але це не потрібно) і коштує дорожче ($ 500 +), але підтримує більше форматів і має більше можливостей.
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 " - програма електронних таблиць з відкритим кодом, яка може виконати пряме перетворення, але її було припинено для Windows у серпні 2014 року.
ssconvert file.csv file.xlsx
Якщо у вас встановлений Python, " csv2odf " є опцією з відкритим кодом та використовує шаблонний підхід для генерування файлів ods, odt, html, xlsx або docx.
http://sourceforge.net/projects/csv2odf/
csv2odf data.csv template.odt output.xlsx
З Node 8+ та bash:
npm install -g pguardiario/csv2xlsx
for file in *.csv; do csv2xlsx "$file"; done