我一直在尝试将Excel工作簿中的公式转换为Python脚本中等效的Python函数或语句
在我的工作场所,我们有旧的Excel工作簿,用于工程过程中的计算(如设计混凝土结构)。这些计算涉及许多公式和公式之间的引用。我想将这些工作簿中的公式转换为“等效”Python函数,结果是这些Excel工作簿随后被Python脚本替换(考虑到这些技术文档的可维护性和工作流验证)
用一个基本的例子来演示这个原理
如果存在包含一张工作表的Excel工作簿(名称=工作表1)
value in cell A1 = 2
value in cell A2 = 3
value in cell A3 = '=A1+A2' = 5
此Python函数将是理想的结果:
def A3(A1,A2):
return A1+A2
或者使用全局变量
A3 = 0
def A3(A1,A3):
A3 = A1 + A3
另一个涉及条件语句的更复杂示例:
包含两张工作表的Excel工作簿(“表1”和“表2”)
Sheet1!A1 = 2
Sheet1!A2 = 3
Sheet1!A3 = False
Sheet2!A1 = '=IF(Sheet1!A3 == True; Sheet1!A1+Sheet1!A2; Sheet1!A1*Sheet1!2)' = 6
在Python中会变成(或类似的东西):
def Sheet2!A1(Sheet1!A1,Sheet1!A2):
if Sheet!A3 == True:
return Sheet1!A1+Sheet1!A2
else:
return Sheet1!A1 * Sheet1!A2
我曾尝试将openpyxl(用于阅读工作簿)与公式(模块)和pycel结合使用,但我不知道如何实现这种转换
如果我理解正确,公式包和pycel包可以识别和转换Excel函数(到Python,对吗?)。或者他们只是在运行时这样做
具体来说,我想知道如何将Excel公式编译成Python函数
一般问题:是否有一种方法可以自动将Excel工作簿转换为等效的Python脚本
Pycel可用于将xlsx文件编译为Python代码,但可能不是您希望的方式
使用示例example.xlsx,执行以下代码:
将导致生成此yaml文件:
cell_map
的字典值是Python代码,实际上是在计算单元格时由pycel执行的。然而,由于Excel代码的执行模型与Python有所不同,因此在执行过程中会发生一些小的变化免责声明:我是pycel的维护者
相关问题 更多 >
编程相关推荐