【问题标题】:ClosedXML parsing comma in numberClosedXML 解析逗号中的数字
【发布时间】:2017-01-30 09:13:03
【问题描述】:

我刚刚下载了 ClosedXML 用于我正在编写的一个小应用程序。在应用程序中,我从数据库中加载一些数据以输出到 Excel 文件。我的本地数字格式使用逗号作为小数指示符。看起来 ClosedXML 无法将这些识别为数字,结果它们被保存为文本,我必须在打开文件时手动转换它们。

我尝试将单元格的DataType 设置为XLCellValues.Number,但是当我这样做时,会引发异常,例如"Cannot set data type to Number because '1534,8250' is not recognized as a number." 这似乎来自ClosedXML 对CultureInfo.InvariantCulture 的使用,而不是@ 987654325@.

除了用句点替换所有逗号和/或重新编译 ClosedXML 项目以使用 CurrentCulture 之外,有什么办法可以解决这个问题?

【问题讨论】:

  • 用句点替换逗号有什么问题?这对我来说似乎是合乎逻辑的解决办法..
  • 只是看起来应该是不必要的。当然可以,但我宁愿只设置格式。

标签: c# .net closedxml


【解决方案1】:

您应该始终以与文化无关的格式存储数据。文化应仅用于呈现数据。

这意味着,正确的解决方案是,当保存到 XML 时,您不应该使用格式化字符串作为数字。 Excel 应该针对特定文化显示数字。

【讨论】:

  • 感谢您的提示。我更改了我的数据库查询以匹配InvariantCulture 格式,并以这种文化运行整个程序。 Excel 文件在打开时仍以我的本地格式显示所有内容,因此效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
  • 1970-01-01
  • 2022-12-06
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多