仅为导出设置文化信息

时间:2014-02-21 09:02:34

标签: c#

我有兴趣将一些数据(主要是数字)导出到Excel中,无论用户当前的文化是什么,我都需要它采用美国格式(即1,234,567.89)。我不想改变整个应用程序的文化。我只需要确保数字格式正确。我已经尝试为当前线程设置文化,但它似乎改变了整个应用程序的文化。任何帮助将不胜感激。

修改我的数据将在DataTable中。我是否需要浏览每个值并进行转换?

1 个答案:

答案 0 :(得分:2)

您可以使用Convert.ToDecimal方法的重载版本之一:

var culture = new CultureInfo("en-US"); 
var convertedValue = Convert.ToDecimal(value, culture);

如果您需要一个字符串,可以使用其中一个ToString重载,例如:

var convertedValue = value.ToString(culture);

您还可以使用string.Format重载:

String.Format(culture , "{0}", value);

如果你想保护它免受不正确的值的影响:

if (!decimal.TryParse(value, NumberStyles.Any, culture , out convertedValue ))
{
   //the code in case the value could not be parsed.  
}