Я знаю, что этот пост немного запоздал, но есть одно предложение, которое здесь не освещалось. Вырежьте все записи из листа и вставьте, используя специальную вставку (OpenOffice). Это преобразует формулы в числа, поэтому нет необходимости в дополнительном программировании, и это разумное решение для небольших рабочих книг.

ришлосьперенести алгоритм из листа Excel в код Python но я долженперепроектировать алгоритм из файла Excel.

Лист Excel довольно сложный, он содержит много ячеек, в которых есть формулы, ссылающиеся на другие ячейки (которые также могут содержать формулу или константу).

Моя идея состоит в том, чтобы проанализировать с помощью сценария на языке Python лист, формирующий своего рода таблицу зависимостей между ячейками, а именно:

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

Не могли бы вы предложить фрагмент кода, который получает текст формулы из ячейки?

Ответы на вопрос(5)

Ваш ответ на вопрос