Frage

Die Dokumentation für xlrd hier http://www.python-excel.org/ erwähnt, dass es nun möglich, in neuester Version ist, aber nicht sagen, wie.

War es hilfreich?

Lösung

Ich bin sicher nicht das, was Sie lesen tatsächlich; xlrd Zugriff auf benannte Bereiche hat nun schon seit einigen Jahren zur Verfügung (in der Version 0.6.0, aktuelle Version ist 0.7.1). und kam mit vollständiger Dokumentation ab initio

Dies ist die xlrd Dokumentation Link , die auf dem http://www.python-excel.org/ Seite gegeben hat, dass Sie erwähnt . Hit BildAb zweimal, und Sie sollten einen Abschnitt mit der Überschrift Named Referenzen, Konstanten, Formeln sehen, und Makros . Dies gibt einen Überblick und Punkte, die Sie in der Dokumentation der Book.name_* Methoden & das Name Objekts und zu einer Demonstration Skript.

Beachten Sie, dass dies die Stamm-Version der Dokumentation SVN und gilt für eine zukünftige Version; es kann eine zusätzliche bequeme Methode erwähnen, die in der aktuellen freigegebenen Version von xlrd nicht verfügbar ist (die Sie von PyPI bekommen ) und das beinhaltet die relevante Dokumentationsdatei.

Aktualisieren in Reaktion auf "" "Ich habe so weit: someRange = book.name_map [u'somerange '] [0] und jetzt habe ich über sie iterieren wollen, greifen Werte, erhalten ihre Abmessungen usw. Nun, was soll ich tun? ich habe versucht, dir (someRange) und Hilfe (someRange) und es nicht viel geholfen hat. „“ "

Was Sie someRange fordern ist eine Instanz der Klasse Name. Sie müssen die Dokumentation lesen dieser Klasse . Es würde helfen, wenn Sie die Demonstration Skript xlrdnameAPIdemo lesen sind Py und versuchen sie es über Ihre xls-Datei (en) ausgeführt wird. Beachten Sie, dass „seine Dimensionen bekommen“ vorangestellt logisch „Iterierte darüber, Haltewert“; die bequeme Methode Name.area2d kann sein, was Sie brauchen.

Andere Tipps

Es ist nicht trivial und es funktionierte in meinem Fall nur auf XLS keine XLSX (wahrscheinlich, weil auf meinem XLSX name.evaluated == 0):

name = book.name_map['my_named_range'][0]
assert name.result.kind == xlrd.oREF
ref3d = name.result.value[0]
for sheet_index in range(ref3d.shtxlo, ref3d.shtxhi):
    sheet = book.sheet_by_index(sheet_index)
    for row in range(ref3d.rowxlo, min(ref3d.rowxhi, sheet.nrows)):
        for col in range(ref3d.colxlo, min(ref3d.colxhi, sheet.ncols)):
            cell = sheet.cell(row, col)
            # TODO: Do something with that cell.

Sie möchten die Anzahl der Spalten und Zeilen in dem Blatt, falls beschränken Sie Ihre Reichweite wie A:A oder 1:1 (das heißt, die gesamte Zeile oder Spalte).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top