Tôi đang tìm cách chuyển đổi nhanh chóng một thư mục các tệp .csv sang định dạng .xls hoặc .xlsx (sẽ rất tuyệt nếu tôi có thể làm / hoặc).
Có cách nào dễ dàng để làm điều này hay tôi cần cài đặt chương trình của bên thứ ba?
Tôi đang tìm cách chuyển đổi nhanh chóng một thư mục các tệp .csv sang định dạng .xls hoặc .xlsx (sẽ rất tuyệt nếu tôi có thể làm / hoặc).
Có cách nào dễ dàng để làm điều này hay tôi cần cài đặt chương trình của bên thứ ba?
Câu trả lời:
Giả sử bạn thích và có Python (vì một số lý do), bạn có thể sử dụng tập lệnh này mà tôi đã đánh dấu:
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')
Chạy trong thư mục với tất cả các tệp CSV, nó sẽ chuyển đổi tất cả chúng và đưa một ".xls" vào cuối.
Đối với Excel 2007+ (tệp xlsx) hỗ trợ tối đa khoảng 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')
Có rất nhiều điều chưa được trả lời trong câu hỏi của bạn.
Giả sử rằng các tệp CVS của bạn nằm trong cấu trúc thư mục tương tự như
c:\randompath\CSV\
a.csv
b.csv
c.csv
:
:
z.csv
và bạn muốn kết thúc với
c:\randompath\XLS\
a.xls
b.xls
c.xls
:
:
z.xls
Tôi có thể nghĩ ra ba con đường để đi tùy thuộc vào tỷ lệ công việc trả trước cho công việc dọn dẹp mà bạn sẵn sàng làm.
Lưu ý rằng tôi chưa viết bất kỳ mã nào để thực hiện những điều này (chưa) Tôi chỉ đưa ra ý tưởng cho một điểm khởi đầu. Có lẽ nếu bạn có thể cung cấp thêm chi tiết về những gì bạn muốn, bạn có thể nhận được những lời giải thích chi tiết hơn về cách xử lý cách tiếp cận từ tôi hoặc một thành viên diễn đàn khác.
Cho cửa sổ? Phiên bản dòng lệnh " Total CSV Converter " của CoolUtils hỗ trợ nhiều định dạng đầu ra bao gồm JSON, Access, DBF, XML & SQL và chỉ có $ 40. Nó có thể lặp lại các thư mục con, xóa các tệp CSV gốc, kết hợp tất cả các tệp vào một tài liệu và hơn thế nữa.
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
" Bộ chuyển đổi CSV nâng cao " ($ 40-200) là một EXE di động có thể thực hiện nhanh chóng và không cần cài đặt 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 " của SoftInterface có thể sử dụng Excel (nhưng không bắt buộc) và đắt hơn ($ 500 +), nhưng hỗ trợ nhiều định dạng hơn và có nhiều tùy chọn hơn.
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 " là một chương trình bảng tính nguồn mở có thể thực hiện chuyển đổi trực tiếp, nhưng nó đã bị ngừng cho Windows vào tháng 8 năm 2014.
ssconvert file.csv file.xlsx
Nếu bạn đã cài đặt Python, " csv2odf " là một tùy chọn nguồn mở và sử dụng cách tiếp cận templated để tạo các tệp ods, odt, html, xlsx hoặc docx.
http://sourceforge.net/projects/csv2odf/
csv2odf data.csv template.odt output.xlsx
Với nút 8+ và bash:
npm install -g pguardiario/csv2xlsx
for file in *.csv; do csv2xlsx "$file"; done