Microsoft excel 计算函数 returns 代码错误 (-2146826273)
Microsoft excel Evaluate function returns a code error (-2146826273)
我在我的应用程序中使用 microsoft.office.interop.excel dll。
当我使用以下公式执行评估函数时: =IF(100000>15000,20%,IF(100000>12500,17.5%,IF(100000>10000,15%,IF(100000>7500,12.5%,IF(100000>5000,10%,0)))))*IF((AND(40>=20,23>=30)),15,2000)*LOG(IF(AND(3<>0,(1/3)>0.5),1000,2000))/IF(90<>0, IF((1/90)>0.5, 123456, 987654), 987654)-550-IF((OR(25>=20, 1000>=30)), 5000, 900)
。
我收到代码错误 -2146826273。我使用 excel sheet 测试了公式,它运行良好。请在下面找到执行的代码。
public dynamic EvaluteFormula(string expressionFormula)
{
Application excelApp = new Application();
return excelApp.Evaluate(expressionFormula);
}
当我通过删除运算符来最小化公式长度时,它工作得很好。有没有人知道如何解决这个问题?
谢谢!
字符串参数长度必须小于等于255个字符。以下是 MSDN 对 Application.Evaluate 函数的说明,该函数将 Microsoft Excel 名称转换为对象或值:
A formula or the name of the object, using the naming convention of Microsoft Excel. The length of the name must be less than or equal to 255 characters.
我在我的应用程序中使用 microsoft.office.interop.excel dll。
当我使用以下公式执行评估函数时: =IF(100000>15000,20%,IF(100000>12500,17.5%,IF(100000>10000,15%,IF(100000>7500,12.5%,IF(100000>5000,10%,0)))))*IF((AND(40>=20,23>=30)),15,2000)*LOG(IF(AND(3<>0,(1/3)>0.5),1000,2000))/IF(90<>0, IF((1/90)>0.5, 123456, 987654), 987654)-550-IF((OR(25>=20, 1000>=30)), 5000, 900)
。
我收到代码错误 -2146826273。我使用 excel sheet 测试了公式,它运行良好。请在下面找到执行的代码。
public dynamic EvaluteFormula(string expressionFormula)
{
Application excelApp = new Application();
return excelApp.Evaluate(expressionFormula);
}
当我通过删除运算符来最小化公式长度时,它工作得很好。有没有人知道如何解决这个问题?
谢谢!
字符串参数长度必须小于等于255个字符。以下是 MSDN 对 Application.Evaluate 函数的说明,该函数将 Microsoft Excel 名称转换为对象或值:
A formula or the name of the object, using the naming convention of Microsoft Excel. The length of the name must be less than or equal to 255 characters.