2016-04-30 2 views
0

Ich habe eine Funktion, die ein xlrd.Cell Objekt als Argument verwendet. Die Funktion muss jedoch auch auf das Objekt xlrd.Sheet zugreifen, das die Zelle "besitzt". Mir wäre es lieber, wenn ich das Blattobjekt, von dem es kam, nicht weitergeben müsste, wenn ich nicht müsste. Bietet die API eine Möglichkeit, das Blatt zu erhalten, das die Zelle besitzt?xlrd API: Holen Sie den Besitzer eines Objekts auf niedrigerer Ebene (z. B. Holen Sie das Sheet-Objekt aus dem Cell-Objekt)

Der Zugriff auf das xlrd.Book Objekt vom Blattobjekt wäre auch nützlich, wenn das möglich ist.

Ich habe mir die API genau angeschaut und es scheint nicht so, als wären diese verfügbar, aber ich bin berüchtigt dafür, solche Dinge zu übersehen.

Antwort

1

Nr Die Definition des xlrd.Cell Objekt ist:

# 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) 

So gibt es keinen Hinweis auf die Mutter Worksheet im Cell Objekt. Sie können einfach die Klassen xlrd.Worksheet und xlrd.Cell erweitern, um einen solchen Verweis hinzuzufügen, aber Sie könnten einfach auch das übergeordnete Arbeitsblatt an Ihre Funktion übergeben und sich die Mühe ersparen.

Verwandte Themen