我想执行从Excel工作簿中读取的代码。但是,由于某些原因,下面的代码实际上并没有进行评估。评估与Excel中的字符串不兼容
import win32com.client
import os
excel = win32com.client.DispatchEx('Excel.Application')
local_dir = os.getcwd()
book = excel.Workbooks.Open(local_dir+'\\Condition.xlsx', True)
sheet = book.Sheets('Sheet1')
condition = sheet.Cells(1,3).Value
print condition
print eval(condition)
excel.Workbooks.Close()
如果有问题的单元格包含“1 + 2”,上面的代码只打印出“1 + 2”而不是“3”。如果我用“1 + 2”替换“条件”,它的评估是正确的。任何想法为什么这不起作用?
字符串本身是否包含引号?这可能是问题...尝试'eval(condition.strip(''')' –
您的单元格包含字符串“”1 + 2“,包括引号,该字符串评估为此字符串并提防'eval' ... –
是的,这就是问题所在。谢谢!我不知道除了使用eval之外,还有什么需要去做,我需要让用户定义一个没有预定义表单的逻辑表达式或结构,它将需要API调用等 – PProteus