ClosedXML 解析数字中的逗号
ClosedXML parsing comma in number
我刚刚下载了 ClosedXML 用于我正在编写的一个小应用程序。在应用程序中,我从数据库加载一些数据以输出到 Excel 文件。我的本地数字格式使用逗号表示小数点。看起来 ClosedXML 无法将这些识别为数字,结果它们被保存为文本,我必须在打开文件时手动转换它们。
我尝试将单元格的 DataType
设置为 XLCellValues.Number
,但是当我这样做时,会抛出异常,例如 "Cannot set data type to Number because '1534,8250' is not recognized as a number."
看来这是来自 ClosedXML 的使用CultureInfo.InvariantCulture
,而不是 CultureInfo.CurrentCulture
。
有什么方法可以解决这个问题,除了用句点替换所有逗号之外 and/or 重新编译 ClosedXML 项目以使用 CurrentCulture
?
您应该始终以 Culture-inspecific 格式存储数据。文化应该只用于呈现数据。
这意味着,正确的解决方案是在保存到 XML 时,您不应该使用数字的格式化字符串。 Excel 应该为特定文化做数字的表示。
我刚刚下载了 ClosedXML 用于我正在编写的一个小应用程序。在应用程序中,我从数据库加载一些数据以输出到 Excel 文件。我的本地数字格式使用逗号表示小数点。看起来 ClosedXML 无法将这些识别为数字,结果它们被保存为文本,我必须在打开文件时手动转换它们。
我尝试将单元格的 DataType
设置为 XLCellValues.Number
,但是当我这样做时,会抛出异常,例如 "Cannot set data type to Number because '1534,8250' is not recognized as a number."
看来这是来自 ClosedXML 的使用CultureInfo.InvariantCulture
,而不是 CultureInfo.CurrentCulture
。
有什么方法可以解决这个问题,除了用句点替换所有逗号之外 and/or 重新编译 ClosedXML 项目以使用 CurrentCulture
?
您应该始终以 Culture-inspecific 格式存储数据。文化应该只用于呈现数据。
这意味着,正确的解决方案是在保存到 XML 时,您不应该使用数字的格式化字符串。 Excel 应该为特定文化做数字的表示。