Syncfusion XlsIO - 意外的令牌异常
我们有一个 Syncfusion GridControl,其中包含以下公式: IF(R2>>0,100*(R3-R2)/R2,0)
这些公式在网格中运行良好,并且公式计算引擎给出正确的结果,无论我们在相关 PC 上有什么区域设置/数字格式(例如英语、法语、匈牙利语)。
当我们使用 XlsIO GridtoExcel 函数在英语区域设置下创建 Excel 文件时,它们也可以完美工作。
但是,当我们尝试在法语和匈牙利语等在 Excel 中使用分号参数分隔符的区域设置下使用 GridtoExcel 时,会出现以下类型的错误:
意外的标记。意外的标记类型:tNumber,字符串值: ,0 在位置 24公式:IF(R2<>0,100*(R3-R2)/R2,0),位置:26
我们尝试使用 SetSeparators 函数,但没有效果(如 知识库文章)
关于这里的正确方法有什么想法吗?不幸的是有关SetSeparators的文档 在这里没有太大帮助。
非常感谢
理查德
We have a Syncfusion GridControl that contains formulae like:
IF(R2<>0,100*(R3-R2)/R2,0)
These formulae work fine in the grid and the formulae calculation engine gives the correct results whatever regional settings/number formats we have on the PC concerned (e.g. English, French, Hungarian).
They also work perfectly when we use the XlsIO GridtoExcel function to create Excel files under English regional settings.
However, we get errors of the type below when we attempt to use GridtoExcel under regional settings like French and Hungarian that use a semi-colon argument separator in Excel:
Unexpected token.Unexpected token type: tNumber, string value: ,0 at position 24. Formula: IF(R2<>0,100*(R3-R2)/R2,0), Position: 26
We have tried to use the SetSeparators function, but it has no effect (as recommended in the KB article)
Any ideas on the correct approach here? Unfortunately the documentation on SetSeparators isn't too helpful here.
Many thanks
Richard
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SetSeparators() 方法是单独为 WorkBook 设置的。对于 Grid,您可以在 GridFormulaEngine 中指定分隔符。 GridFormulaEngine 将文化“en-US”视为默认文化。对于其他区域性,必须与 SetSeparators() 方法一起显式设置 ParseDecimalSeparator 和 ParseArgumentSeparator 属性。这是代码,
问候,
克里斯托.
The SetSeparators() method was set for WorkBook alone. For Grid, you can specify the separators in GridFormulaEngine. The GridFormulaEngine considers the culture ‘en-US’ as a default culture. For the other cultures, the ParseDecimalSeparator and ParseArgumentSeparator properties have to be set explicitly along with the SetSeparators() method. Here is the code,
Regards,
Christo.