xlrd API:获取较低级别对象的所有者(例如,从Cell对象获取Sheet对象)

时间:2016-04-30 02:52:06

标签: python xlrd

我有一个以xlrd.Cell对象作为参数的函数。但是,该函数还需要访问"拥有的xlrd.Sheet对象。细胞。如果我不需要,我更愿意不必传递它来自的表格对象。 API是否提供了获取拥有单元格的工作表的方法?

如果可能的话,从工作表对象访问xlrd.Book对象也很有用。

我仔细查看了API,看起来似乎没有这些,但我却因为忽略了这样的事情而臭名昭着。

1 个答案:

答案 0 :(得分:1)

没有。 xlrd.Cell对象的定义是:

# Type:       Cell
# String Form:number:42.0
# File:       c:\python27\lib\site-packages\xlrd\sheet.py
# Source:
class Cell(BaseObject):

    __slots__ = ['ctype', 'value', 'xf_index']

    def __init__(self, ctype, value, xf_index=None):
        self.ctype = ctype
        self.value = value
        self.xf_index = xf_index

    def __repr__(self):
        if self.xf_index is None:
            return "%s:%r" % (ctype_text[self.ctype], self.value)
        else:
            return "%s:%r (XF:%r)" % (ctype_text[self.ctype], self.value, self.xf_index)

因此,Worksheet对象中没有对父Cell的引用。您可以轻松地扩展xlrd.Worksheetxlrd.Cell类来添加此类引用,但您也可以将父工作表传递给您的函数并省去麻烦。