首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python xlrd模块

Python xlrd模块
EN

Stack Overflow用户
提问于 2013-07-04 18:07:18
回答 2查看 9.4K关注 0票数 5

根据XLRD模块的文档,

代码语言:javascript
复制
 row_values(rowx, start_colx=0, end_colx=None)

“返回给定行中单元格的值的切片。”

并给出以下python代码:

代码语言:javascript
复制
import xlrd
wb=xlrd.open_workbook("xl1.xlsx")
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
    print sh.row_values(rownum) 

输出为:

代码语言:javascript
复制
 [12.0, u'test.0']
 [34.0, u'te.st']
 [u'test123', u'12.test']

exel文件包含以下数据:

12.0,测试.0,34.0,te.st,test123,12.test

那么,根据输出结果,我应该得到哪种类型的数据结构呢?它不是元组(因为当打印元组类型时,没有u‘作为字符串的前缀),u’的意思是什么?同样,我们在数据结构中有两种类型的数据- int和"non int“。是真的吗?我在文档中找不到任何关于这方面的信息。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-04 18:13:23

row_values返回具有适当数据类型的单元格值的列表。列表中每个项目的数据类型取决于源excel文件中的单元格类型。

可能存在仅具有stringfloatint数据类型的项目,有关更多信息,请参阅此mapping table (查找Cell的文档)。

u只是表示这是一个unicode字符串。Documentation很好地解释了这一点。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2016-03-17 00:45:17

首先要做的是!

我不知道您使用的是哪个版本的xlrd,但根据最新版本(撰写本文时的xlrd 0.9.4 ):

代码语言:javascript
复制
row_values() 

将以列表的形式返回行中的值。可以通过键入以下命令进行验证:

代码语言:javascript
复制
>>> type(sh.row_values(2))
<type 'list'>

接下来,为了获取包含数据类型的行的值,您可以键入以下内容:

代码语言:javascript
复制
>>> sh.row(2)

它将返回类似如下的内容:

代码语言:javascript
复制
[number:12.0, text:u'test.0']

这意味着列表中的第一项是数字,第二项是字符串或也称为文本。

最后,字符串前面的u表示它是Unicode编码。请记住,xlrd模块将尝试将excel表格中的每个数据都呈现为unicode编码,因此您看到的是u

xlrd module official documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17467542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档