Мне нужно перенести алгоритм из таблицы 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 экземпляр класса, который должен их содержать.
Не могли бы вы предложить фрагмент кода, который получает текст формулы из ячейки?