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时抛异常的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
您可能感兴趣的文章:
- python 写入csv乱码问题解决方法
- Python 错误和异常小结
- 在Python中关于中文编码问题的处理建议
- 用python读写excel的方法
- 使用Python和xlwt向Excel文件中写入中文的实例
赞 (0)