免费注册 查看新帖 |

Chinaunix

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

xlrd 读excel,当数据存入列表后用[0:3]这样分段读为何无法显示汉字 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-02 20:36 |只看该作者 |倒序浏览
代码如下,为何 row_list[0:3]这样读出来的数据是u'35\u5428\u94c1\u6c34\u7f50', u'\u8bd5\u6837\u5207\u5272\u673a', 的形式?
而单独的 row_list[3] 之类却正常?


#_coding:gbk_
import xlrd
 
fname = "E:\\MyProfiles\\Desktop\\test\\excel\\test.xls"
bk = xlrd.open_workbook(fname)
shxrange = range(bk.nsheets)
try:
    sh = bk.sheet_by_name("Sheet1")
except:
    print "no sheet in %s named Sheet1" % fname

nrows = sh.nrows
ncols = sh.ncols
print "nrows %d, ncols %d" % (nrows,ncols)
 
cell_value = sh.cell_value(12,1)
print cell_value
print "line******************line"
 
row_list = []
for i in range(1,nrows):
    row_data = sh.cell_value(i,1)
    print row_data
    row_list.append(row_data)
print "************"
print row_list[0:3]
print row_list[0]
print row_list[1]
print row_list[3]




运行后输出如下:
还有首行输出了一个警告,这是什么意思呢?


WARNING *** XF[62] unknown (raw) format key (57, 0x0039)
nrows 367, ncols 7
16/3t桥式起重机
line******************line
35吨铁水罐
试样切割机
智能流量累积仪
(10+10)T厂行车停电保
停电保系统
.
.
.
电力变压器
电力变压器
************
[u'35\u5428\u94c1\u6c34\u7f50', u'\u8bd5\u6837\u5207\u5272\u673a', u'\u667a\u80fd\u6d41\u91cf\u7d2f\u79ef\u4eea']
35吨铁水罐
试样切割机
(10+10)T厂行车停电保


注:excel文件是google搜的,如有雷同纯属巧合

论坛徽章:
0
2 [报告]
发表于 2009-11-02 21:06 |只看该作者
你print的是个list,打印的是list的内部表示。
print row_list[0] 打印的是元素的内容,是可以打印出汉字。

论坛徽章:
0
3 [报告]
发表于 2009-11-02 21:44 |只看该作者
原帖由 bohemia 于 2009-11-2 21:06 发表
你print的是个list,打印的是list的内部表示。
print row_list[0] 打印的是元素的内容,是可以打印出汉字。


哦,明白了,用for 可以一个个读出来

现在发现一个新问题

当我把数据存到字典后

再用for给他一个个读出来

返回的结果常发生混乱,随机出现在某些位置的某个汉字显示??,而且缺少一次换行,而且每次读取出现缺少换行的位置都不一致.....非常诡异啊



论坛徽章:
0
4 [报告]
发表于 2009-11-02 21:52 |只看该作者
这样看比较清楚了

调试2次, 同一个地方显示的不同结果

Snap4.jpg (11.5 KB, 下载次数: 29)

Snap4.jpg

Snap3.jpg (12.31 KB, 下载次数: 29)

Snap3.jpg

论坛徽章:
0
5 [报告]
发表于 2009-11-03 11:19 |只看该作者
coding为utf8把,你的excel读出去都是unicode

论坛徽章:
0
6 [报告]
发表于 2009-11-03 12:39 |只看该作者
原帖由 smallfish_xy 于 2009-11-3 11:19 发表
coding为utf8把,你的excel读出去都是unicode


我在顶上写了#_coding:gbk_呢

而且wing ide里面我都设置的是gbk

这个为啥随即位置出现,真是奇怪啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP