2017-01-30 97 views
2

我刚刚下载了ClosedXML以供我在写一个小应用程序使用。在应用程序中,我从数据库加载一些数据以输出到Excel文件。我的本地数字格式使用逗号作为十进制指示符。它看起来像ClosedXML不能识别这些数字,结果他们被保存为文本,我不得不手动转换它们,当我打开文件。ClosedXML解析逗号的号码

我已经试过细胞的DataType设置为XLCellValues.Number,但是当我做,抛出一个异常,像"Cannot set data type to Number because '1534,8250' is not recognized as a number."看来,这个来自ClosedXML的使用CultureInfo.InvariantCulture,而不是CultureInfo.CurrentCulture

有没有什么办法可以解决这个问题,不能用句点代替所有的逗号和/或重新编译ClosedXML项目来使用CurrentCulture

+1

用句点替换逗号会产生什么问题?这似乎是对我来说合乎逻辑的修复。 – Ben

+0

看起来应该是不必要的。它当然有效,但我宁愿能够设置格式。 – schneiju

回答

3

您应该始终以非文化格式存储数据。文化应该只用于呈现数据。

这意味着,正确的解决方案是,保存到XML时,不应该使用格式化的字符串作为编号。 Excel应该对特定文化的编号进行介绍。

+0

感谢您的提示。我改变了我的数据库查询,以匹配InvariantCulture格式,并运行整个程序与该文化。 Excel文件在打开时仍然以本地格式显示所有内容,因此效果很好。 – schneiju