xlwings、PyXll、FlyingKoala和 DataNitro 都使用Excel作为使用Python的接口。
如果你想使用Python库,可以尝试PyCel、xlcalculator、Formulas和Schedula。
我是xlcalculator的项目所有者。
xlcalculator使用openpyxl来读取Excel文件,并增加了将Excel公式转换为Python的功能。
以下是使用xlcalculator与Excel文件的示例:
from xlcalculator import ModelCompiler
from xlcalculator import Model
from xlcalculator import Evaluator
filename = r'use_case_01.xlsm'
compiler = ModelCompiler()
new_model = compiler.read_and_parse_archive(filename)
evaluator = Evaluator(new_model)
val1 = evaluator.evaluate('First!A2')
print("value 'evaluated' for First!A2:", val1)
使用字典来演示使用xlcalculator的示例;
input_dict = {
"B4": 0.95,
"B2": 1000,
"B19": 0.001,
"B20": 4,
"B22": 1,
"B23": 2,
"B24": 3,
"B25": "=B2*B4",
"B26": 5,
"B27": 6,
"B28": "=B19*B20*B22",
"C22": "=SUM(B22:B28)",
}
from xlcalculator import ModelCompiler
from xlcalculator import Model
from xlcalculator import Evaluator
compiler = ModelCompiler()
my_model = compiler.read_and_parse_dict(input_dict)
evaluator = Evaluator(my_model)
for formula in my_model.formulae:
print("Formula", formula, "evaluates to", evaluator.evaluate(formula))
evaluator.set_cell_value("Sheet1!B22", 100)
print("Formula B28 now evaluates to", evaluator.evaluate("Sheet1!B28"))
print("Formula C22 now evaluates to", evaluator.evaluate("Sheet1!C22"))