Я должен переносить алгоритм из листа Excel в код python, но мне нужно перепроектировать алгоритм из файла Excel.
Лист Excel довольно сложный, он содержит много ячеек, в которых есть формулы, относящиеся к другим ячейкам (которые также могут содержать формулу или константу).
Моя идея состоит в том, чтобы проанализировать с помощью python script строение таблицы своего рода таблицы зависимостей между ячейками, то есть:
A1 зависит от формулы B4, C5, E7: "= sqrt (B4) + C5 * E7"
A2 зависит от формулы B5, C6: "= sin (B5) * C6"
...
xlrd модуль python позволяет читать книгу XLS, но на данный момент я могу получить доступ к значению ячейки, а не формула.
Например, со следующим кодом я могу просто получить значение ячейки:
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)
В любом случае, похоже, у него нет способа получить формулу из объекта Cell, возвращаемого методом .cell(...). В документации говорится, что можно получить строчную версию формулы (на английском языке, потому что нет никакой информации о переводе имени функции, хранящемся в Excel). Они говорят о формулах (выражениях) в классах Name и Operand, так или иначе я не могу понять, как получить экземпляры этих классов экземпляром класса Cell, который должен содержать их.
Не могли бы вы предложить фрагмент кода, который получает текст формулы из ячейки?