3

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

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

当我们使用 XlsIO GridtoExcel 函数在英文区域设置下创建 Excel 文件时,它们也能完美运行。

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

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

我们曾尝试使用 SetSeparators 功能,但没有效果(如知识库文章中推荐的那样)

关于正确方法的任何想法?不幸的是,关于 SetSeparators 的文档在这里并没有太大帮助。

非常感谢

理查德

4

1 回答 1

2

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

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

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

问候,克里斯托。

于 2013-01-31T08:58:07.633 回答