xlrd
ライブラリを使用してExcelファイルをCSVファイルに変換しようとしています。python xlrd xlsxをcsvに変換
しかし、私はこのエラーを得た:Excelファイルが大きすぎるため
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0142' in position 2: ordinal not in range(128)
それはすることができますか?すべての行が正常に動作する原因は、行数が少ないファイルをExcelで処理するためです。しかし、2000行近くのExcelファイルを変換しようとしたときに、このエラーが発生しました。
[UPDATE]
これはコードです:
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()
そして、これはトレースバックです:
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)
コードと完全なトレースバックを表示してください。これはスプレッドシートのサイズに起因するものではありません。 –
@MartijnPieters:コードとトレースバックを更新しました。ありがとう。 – Cacheing