相关疑难解决方法(0)

使用python xlrd从Excel单元格中获取公式

我必须将算法从Excel工作表移植到python代码,但我必须从Excel文件中对算法进行反向工程.

Excel工作表非常复杂,它包含许多单元格,其中有公式引用其他单元格(也可以包含公式或常量).

我的想法是用python脚本分析构建一个单元格之间依赖关系的表格,即:

A1取决于B4,C5,E7公式:"= sqrt(B4)+ C5*E7"
A2取决于B5,C6公式:"= sin(B5)*C6"
......

所述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)
Run Code Online (Sandbox Code Playgroud)

无论如何,似乎没有办法从.cell(...)方法返回的Cell对象中获取formul .在文档中,他们说可以获得公式的字符串版本(英文版,因为没有关于存储在Excel文件中的函数名转换的信息).他们在NameOperand类中谈论公式(表达式),无论如何我无法理解如何通过必须包含它们的Cell类实例来获取这些类的实例.

你能建议一个从单元格中获取公式文本的代码片段吗?

python excel xls xlrd formula

24
推荐指数
3
解决办法
2万
查看次数

标签 统计

excel ×1

formula ×1

python ×1

xlrd ×1

xls ×1