以下は Excel に中国語を書き込むときにスローされる例外の問題を解決する Python の記事です。非常に参考になるので、皆さんのお役に立てれば幸いです。見に来てみましょう
最近、事業部門から統計結果を毎日事業部門に送信する必要があるというリクエストを受けました。Python スクリプトをデバッグすると、エクスポートされた Excel のタイトルが中国語になり、次の例外が発生します。は常にスローされます
Traceback (most recent call last): File "totalpx.py", line 99, in <module> export() File "totalpx.py", line 54, in export workbook.save(out_path) File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/Workbook.py", line 710, in save doc.save(filename_or_stream, self.get_biff_data()) File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/Workbook.py", line 674, in get_biff_data shared_str_table = self.__sst_rec() File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/Workbook.py", line 636, in __sst_rec return self.__sst.get_biff_record() File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/BIFFRecords.py", line 77, in get_biff_record self._add_to_sst(s) File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/BIFFRecords.py", line 92, in _add_to_sst u_str = upack2(s, self.encoding) File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/UnicodeUtils.py", line 50, in upack2 us = unicode(s, encoding) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
解決策は、ワークブックの作成時に文字セットを設定することです:
workbook = xlwt.Workbook(encoding = 'utf-8')
通常のデフォルトのエンコーディングは ascii なので、中国語のデコードを記述すると例外がスローされます。utf-8 に設定するだけです。
関連する推奨事項:
Fedora が zip を解凍するときに中国語の文字化けを解決する Python の方法
以上がPython は中国語を Excel に書き込むときにスローされる例外の問題を解決しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。