免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5878 | 回复: 15
打印 上一主题 下一主题

pyExcelerator的中文编码问题 [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-27 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-30 00:30 |只看该作者 |倒序浏览
直接上代码

  1. #!/usr/bin/env python
  2. #coding=utf8
  3. import os
  4. from pyExcelerator import *


  5. city1 = {
  6.         'bj' : 'beijing',
  7.         'hz' : 'hangzou',
  8.         'gz' : 'guangzhou'
  9. }


  10. city2 = {
  11.         'bj' :'u\'北京\'',
  12.         'hz' :'u\'杭州\'',
  13.         'gz' : 'u\'广州\''
  14. }


  15. w = Workbook()
  16. for file in os.listdir('/home/test/'):
  17.         pla,dat = file.split('_')
  18.         ws1 = w.add_sheet(city1[pla])
  19.         #ws2 = w.add_sheet(city2[pla])

  20. w.save('test.xls')
复制代码
在这里,运行字典city1时,生成的excel文件是没有问题的。

但就是使用中文作为excel分表的名字时,也就是运行city2的时候,执行没有问题,但生成的excel文件打开的时候会有报错,
提示有不可读取的内容。
选择修复的话,打开的工作表都是被重新命名过的,都是Recovered_sheet

虽然说,使用非中文显示也可以,但总有点不爽

尝试了好些方法都没能解决,各位大大是怎么处理的呢?请教

论坛徽章:
0
2 [报告]
发表于 2010-05-30 07:12 |只看该作者
为什么就不用VBA操作Excel呢?VBA是官方的首选Office编程语言,而且也很简单啊。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-27 06:20:00
3 [报告]
发表于 2010-05-30 09:43 |只看该作者
谢谢2gua的回复!
刚才查了一下,VBA的确有他的优势,不过VBA已经是另外一种语言了。vba是否可以作为一个模块融合到python中使用呢?

现在还不想参杂其他,想先把python学好,或者说把pyExcelerator用好。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-27 06:20:00
4 [报告]
发表于 2010-05-30 09:49 |只看该作者
自己再补充一些

上面的代码,如果以Unicode编码的中文组成一个list来调用,生成的excel是清晰能实现中文编码的
  1. #!/usr/bin/env python
  2. #coding=utf8

  3. import os

  4. from pyExcelerator import *



  5. city1 = {
  6.         'bj' : 'beijing',
  7.         'hz' : 'hangzou',
  8.         'gz' : 'guangzhou'
  9. }


  10. city2 = {
  11.         'bj' :'u\'北京\'',
  12.         'hz' :'u\'杭州\'',
  13.         'gz' : 'u\'广州\''
  14. }


  15. heads = [u'北京',u'杭州',u'广州']


  16. w = Workbook()

  17. for file in os.listdir('/home/test/'):
  18.         pla,dat = file.split('_')
  19.         ws1 = w.add_sheet(city1[pla])
  20.         for q in range(len(heads)):
  21.                ws1.write(0,q,heads[q])

  22.         #ws2 = w.add_sheet(city2[pla])

  23. w.save('test.xls')
复制代码
而使用dict字典却不可以?还是我的字典表达有问题?但尝试了多次,还是不行。
还请教各位大大!

论坛徽章:
0
5 [报告]
发表于 2010-05-30 10:47 |只看该作者
'u\'北京\''
harmful_001 发表于 2010-05-30 09:49

这是想干嘛?

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-27 06:20:00
6 [报告]
发表于 2010-05-30 13:28 |只看该作者
回复 5# luffy.deng


    呃。。
  想匹配city2[pla]的时候得到的结果为  u'北京'

论坛徽章:
0
7 [报告]
发表于 2010-05-30 14:46 |只看该作者
回复  luffy.deng


    呃。。
  想匹配city2的时候得到的结果为  u'北京'
harmful_001 发表于 2010-05-30 13:28


为什么要 得到 u'北京'    这样的一个东西?

论坛徽章:
0
8 [报告]
发表于 2010-05-30 15:24 |只看该作者
谢谢2gua的回复!
刚才查了一下,VBA的确有他的优势,不过VBA已经是另外一种语言了。vba是否可以作为一个模 ...
harmful_001 发表于 2010-05-30 09:43



    重点不在于VBA能否作为一个模块在Python中使用,如果即使可以,那干脆就用VBA得了。
    重点也不在于VBA是另外一种语言。
    重点在于VBA是官方指定的Office二次编程语言,而且很简单,兼容性好。合适的领域用合适的东西,这个才是重点。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-27 06:20:00
9 [报告]
发表于 2010-05-30 15:31 |只看该作者
为什么要 得到 u'北京'    这样的一个东西?
luffy.deng 发表于 2010-05-30 14:46



    使得excel的工作表是以中文来命名的
   我暂时知道使用unicode来写入中文,这里有什么问题吗?

论坛徽章:
0
10 [报告]
发表于 2010-05-30 15:38 |只看该作者
本帖最后由 luffy.deng 于 2010-05-30 15:50 编辑
使得excel的工作表是以中文来命名的
   我暂时知道使用unicode来写入中文,这里有什么问题吗?
harmful_001 发表于 2010-05-30 15:31

'u\'北京\''   这样的东西跟中文命名有什么关系?  你不会认为这样会得到一个unicode字符串吧?另外不用vba的原因是它无法脱离office环境运行,所以才需要ActiveX。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP