如何在excel单元格中编写python函数

2024-09-21 03:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

非常感谢你的帮助。对于一个测试项目,为了便于参考,我想直接在Excel电子表格中编写python函数

这就是我设想excel结构的方式:第一列记录函数名,这样我就可以使用A列中的名称调用B列中的函数。但是,在使用openpyxl在python中加载电子表格之后,函数名和代码都是字符串

我想知道:(1)是否有办法以字符串格式调用该函数,或者(2)如何在Excel中编写该函数,以便在加载到python后可以轻松调用该函数

我还附加了我用来评估语句的代码,但是我得到了以下错误

workbook = load_workbook(filename = path)
sheet = workbook.active

dict = {}
for row in sheet.iter_rows(min_row = 2, max_row = 4, min_col = 1, max_col = 2, values_only=True):
    dict[row[0]] = row[1]
    eval(row[0] + "()", dict)
Traceback (most recent call last):

  File "C:..\Test Code.py", line 20, in <module>
    eval(row[0] + "()", dict)

  File "<string>", line 1, in <module>

TypeError: 'str' object is not callable

再次感谢你

Excel Format


Tags: 函数字符串代码inevalcolminexcel
1条回答
网友
1楼 · 发布于 2024-09-21 03:27:02

有没有办法以字符串格式调用函数?

是的,您可以使用python的eval function将字符串转换为代码。将字符串转换为代码通常是一个重大的安全风险,因此应谨慎进行

如何编写函数,以便在加载到python后可以轻松调用它?

我不知道具体细节,但您需要确保函数以纯文本编码,因此将excel保存为csv可能是最好的方法。您还需要在缩进中只使用空格或制表符,否则python会抱怨

我的两分钱

我不推荐这种编写测试代码的方法。通过在Excel中编写,您将失去集成开发环境(IDE)的所有提示和错误捕获。通过将字符串转换为代码,您还将使项目面临安全风险和潜在的意外行为

我建议您在项目中的一个单独目录中用python文件编写测试代码。大多数IDE(such as pycharm)将处理单独的测试目录,而不会出现问题。通过在python文件中编写代码,您将能够使用IDE,并消除可能存在的重大安全威胁。此外,还有更多的资源用于用python而不是excel编写测试

相关问题 更多 >

    热门问题