下面为大家分享一篇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解决n阶台阶走法问题的方法
python解决fedora解压zip时中文乱码的方法
以上就是python 解决中文写入excel时抛异常的问题的详细内容。