Tôi đang cố gắng chuyển đổi tệp excel thành tệp csv bằng cách sử dụng thư viện xlrd
.python xlrd chuyển đổi xlsx thành csv
Nhưng tôi đã nhận lỗi này:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0142' in position 2: ordinal not in range(128)
Nó có thể là do file excel là quá lớn? Nguyên nhân là mọi thứ hoạt động tốt với các tệp excel có số lượng hàng nhỏ. Nhưng khi tôi cố gắng chuyển đổi một tệp excel có gần 2000 hàng, tôi gặp lỗi này.
[UPDATE]
Đây là mã:
filepath = './attachments'
wb = xlrd.open_workbook(os.path.join(filepath, 'result.xls'))
sheet = wb.sheet_by_index(0)
fp = open(os.path.join(filepath, 'result.csv'), 'wb')
wr = csv.writer(fp, quoting=csv.QUOTE_ALL)
for rownum in xrange(sheet.nrows):
wr.writerow(sheet.row_values(rownum))
fp.close()
Và đây là traceback:
Traceback (most recent call last):
File "MethodTest.py", line 11, in <module>
wr.writerow(sheet.row_values(rownum))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0142' in position 2: ordinal not in range(128)
Vui lòng hiển thị cho chúng tôi mã và truy nguyên đầy đủ; điều này không phải do kích thước bảng tính. –
@MartijnPieters: Tôi vừa cập nhật mã và truy xuất lại. Cảm ơn. – Cacheing