python - 使用 xlwt 生成的 excel 文件单元格的中文是乱码
PHPz
PHPz 2017-04-17 10:57:33
[Python讨论组]

系统是 Mac, 用的是 Office 2011,python 安装了 xlwt

代码如下:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
import xlwt 

file = xlwt.Workbook(encoding = 'utf-8') 
table = file.add_sheet('hello', cell_overwrite_ok = True) 

table.write(1, 1, '测试') 
file.save('demo.xls')

数据写入到 demo.xls 文件中,打开该文件后,单元格的内容都是乱码,但鼠标点击该单元格,在上方的公式栏(fx)里显示又是正常的(如下图),若将本文件在 windows 里打开,中文又能正常显示,请问这是什么原因呢?该如何解决?

解决方法

根据 @fen 的思路,加了下面的代码解决了:

style = xlwt.XFStyle()
font = xlwt.Font()
font.name = 'SimSun'    # 指定“宋体”
style.font = font       

table.write(1, 1, '测试', style) # 使用 style
PHPz
PHPz

学习是最好的投资!

全部回复(1)
迷茫

是字体的问题,不是代码的编码问题。

很多由程序导出生成的 Word, Excel 经常出现这样的问题,其实只要先选择整个文档的内容(CMD+A),然后再把字体替换成中文的(比如宋体),就会正常显示了。缺点就是中英文字体都会变成一致了。

xlwt 在生成文件的时候应该是可以指定字体的,你试一试。毕竟替换字体这步留给用户不好。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号