Syncfusion XlsIO - 意外的令牌异常

时间:2010-01-21 15:33:41

标签: .net syncfusion

我们有一个Syncfusion GridControl,其中包含以下公式: IF(R2<> 0100 *(R3-R2)/ R2,0)

这些公式在网格中运行良好,公式计算引擎可以提供正确的结果,无论我们在相关PC上的区域设置/数字格式(例如英语,法语,匈牙利语)。

当我们使用XlsIO GridtoExcel函数在英语区域设置下创建Excel文件时,它们也能正常工作。

但是,当我们尝试在法语和匈牙利语等区域设置中使用GridtoExcel时,我们会在Excel中使用分号参数分隔符时出现以下类型的错误:

意外的令牌。意外的令牌类型:tNumber,字符串值:,位置24处的0。公式:IF(R2<> 0,100 *(R3-R2)/ R2,0),位置:26

我们尝试使用SetSeparators函数,但它没有效果(按照KB article中的建议)

有关正确方法的任何想法吗?不幸的是documentation on SetSeparators在这里不太有用。

非常感谢

理查德

1 个答案:

答案 0 :(得分:2)

仅为WorkBook设置了SetSeparators()方法。对于Grid,您可以在GridFormulaEngine中指定分隔符。 GridFormulaEngine将文化“en-US”视为默认文化。对于其他文化,必须与SetSeparators()方法一起显式设置ParseDecimalSeparator和ParseArgumentSeparator属性。这是代码,

 GridFormulaEngine.ParseDecimalSeparator = char.Parse(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);

 GridFormulaEngine.ParseArgumentSeparator = char.Parse(CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator);

此致 克里斯托。