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