Holen Sie sich Formel aus Excel-Zelle mit Python Xlrd

Ich port eines Algorithmus aus einem Excel-sheet, um python-code aber ich muss reverse Engineering der Algorithmus der Excel-Datei.

Excel-Blatt ist ziemlich kompliziert, es enthält viele Zellen, in denen gibt es Formeln, die sich auf andere Zellen (, die auch enthält eine Formel oder eine Konstante).

Meine Idee ist es, zu analysieren, mit einem python-Skript die Blatt-Gebäude eine Art Tabelle der Abhängigkeiten zwischen den Zellen, das heißt:

A1 hängt davon ab, B4,C5,E7 die Formel: "=sqrt(B4)+C5*E7"

A2 hängt davon ab, B5,C6 die Formel: "=sin(B5)*C6"

...

Den xlrd python-Modul ermöglicht das Lesen einer XLS-Arbeitsmappe, aber im moment kann ich den Zugriff auf die Wert einer Zelle, nicht die Formel.

Zum Beispiel mit dem folgenden code, den ich bekommen kann, einfach den Wert einer Zelle:

import xlrd

#open the .xls file
xlsname="test.xls"
book = xlrd.open_workbook(xlsname)

#build a dictionary of the names->sheets of the book
sd={}
for s in book.sheets():
    sd[s.name]=s

#obtain Sheet "Foglio 1" from sheet names dictionary
sheet=sd["Foglio 1"]

#print value of the cell J141
print sheet.cell(142,9)

Sowieso, Es scheint keine Möglichkeit zu haben, Holen Sie sich die formul aus dem Cell-Objekt zurück durch die .Zelle(...) Methode.
In Dokumentation Sie sagen, dass es möglich ist, um einen string-version der Formel - (in Englisch, weil es keine Informationen über die Funktion name übersetzung gespeichert in der Excel-Datei). Sie sprechen von Formeln (Ausdrücke) in der Namen und Operanden Klassen, sowieso kann ich nicht verstehen, wie man Instanzen dieser Klassen durch die Zelle Klasse-Instanz, müssen Sie enthält.

Können Sie uns empfehlen einen code-Schnipsel ruft die Formel text aus einer Zelle?

InformationsquelleAutor der Frage alexroat | 2011-01-14

Schreibe einen Kommentar