Python xlrd:如何转换提取的值?

时间:2012-01-18 11:29:23

标签: python xlrd

我有一个问题,我觉得我已经多次回答,我在这里找到了。但是,作为一个新手,我真的不明白如何进行真正的基本操作。

这就是事情:

  • 我有一个.xls,当我使用xlrd获取一个值时,我只是使用 sh.cell(0,0)(假设sh是我的表);

  • 如果单元格中的内容是字符串,我会得到类似text:u'MyName'的内容,我只想保留字符串'MyName';

  • 如果单元格中的内容是数字,我会得到类似number:201.0的内容,我只想保留整数201

如果有人可以指示我应该只提取值,格式化为我想要的,谢谢。

3 个答案:

答案 0 :(得分:15)

sh.cell(x,y)返回类Cell的实例。当您打印sh.cell(x,y)时,您将返回该类的 repr 函数(因此它会输出type:value)。

你应该尝试:

cell = sh.cell(x,y)
print(cell.value)

我无法测试这个,因为我没有xlrd,但我认为它会在文档中有用:https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#sheet.Cell-class

答案 1 :(得分:0)

对此的正确答案是简单地使用Cell.value功能。这将返回一个数字或Unicode字符串,具体取决于单元格包含的内容。

答案 2 :(得分:0)

这将为您提供Excel中单元格内容的值。

    var = sh.cell(x,y)
    print var.value

但是这个数据的类型仍然是'unicode'。要转换为字符串(ascii):

    var.value.encode('ascii','ignore')