Dưới đây là một ví dụ sử dụng xlsxwriter:
import os
import glob
import csv
from xlsxwriter.workbook import Workbook
for csvfile in glob.glob(os.path.join('.', '*.csv')):
workbook = Workbook(csvfile[:-4] + '.xlsx')
worksheet = workbook.add_worksheet()
with open(csvfile, 'rt', encoding='utf8') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, col in enumerate(row):
worksheet.write(r, c, col)
workbook.close()
FYI, đó cũng là một gói phần mềm được gọi là openpyxl, có thể đọc/ghi Excel 2007 xlsx/xlsm file.
Hy vọng điều đó sẽ hữu ích.
Cảm ơn đoạn mã rất hữu ích này. Trong khi sử dụng các tệp lớn, tốt hơn nên sử dụng 'constant_memory' để sử dụng bộ nhớ được kiểm soát như: 'workbook = Workbook (csvfile + '.xlsx', {'constant_memory': True})'. Tham khảo: http://xlsxwriter.readthedocs.org/en/latest/working_with_memory.html – Ethan
Đẹp ... Tuy nhiên, các tệp xlsx được tạo có đầy đủ tất cả các trường số có lỗi mà các trường được lưu dưới dạng văn bản thay vì số. – MrMobileMan
Tìm thấy bản sửa lỗi cho các số dưới dạng văn bản ở đây: http://stackoverflow.com/questions/24971556/openpyxl-python-writing-csv-to-excel-gives-number-formatted-as-text – MrMobileMan