Excelワークブックからコードを読み取って実行します。何らかの理由で、次のコードは実際には評価されません。EvalがExcelのStringと連携していません
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」が含まれている場合、上記のコードは「3」ではなく「1 + 2」を出力します。 "condition"を "1 + 2"に置き換えると、正しく評価されます。なぜこれがうまくいかないのか?
文字列自体に引用符が含まれていますか?これは問題の可能性があります... 'eval(condition.strip( '"') ' –
あなたのセルには文字列' '1 + 2 ''が含まれていますが、この文字列として評価されます。 ... –
はい、それは問題でした。ありがとうございます!私はevalを使用する以外に何をする必要があるかわかりません。ユーザーが事前定義された形式を持たないロジック式を定義できるようにする必要がありますまたは構造体であり、API呼び出しなどが必要になります。 – PProteus