我想執行從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