以下為大家分享一篇Python 解決中文寫入Excel時拋異常的問題,具有很好的參考價值,希望對大家有幫助。一起來看看吧
近期接到業務部門需求,需將統計結果每日發送到業務部門,在調試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的時候設定字元集即可解決:
workbook = xlwt.Workbook(encoding = 'utf-8')
正常預設編碼是ascii,所以寫入中文解碼會拋異常,設定為utf-8就行。
相關推薦:
以上是Python 解決中文寫入Excel時拋異常的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!