我们有一个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在这里不太有用。
非常感谢
理查德
答案 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);
此致 克里斯托。