导出双精度到Excel - 小数分隔符问题

时间:2013-02-08 17:55:54

标签: c# decimal export-to-excel globalization separator

使用Microsoft.Office.Interop.Excel将数据以双精度格式导出到Excel时出现问题。

这样的数字

-49,65454324566(使用逗号作为小数分隔符)

代码中的

导出为

-4965454324566

没有逗号,点或任何小数分隔符。

只有

之类的数字

0,988946533164

,即小于1,以正确的格式导出。

我尝试过使用NumberFormat,但我对整数或小数的carachters没有任何限制,这意味着,我希望有123,456789或123456,789之类的数字。所以我不知道NumberFormat是否符合我的需要。

只是为了表明,我正在做类似的事情:

Excel.Range cel = (Excel.Range)excel.Cells[1, 1];
cel[r, c] = table.Rows[r][c];

我也试过了:

Excel.Range cel = (Excel.Range)excel.Cells[1, 1];
cel[r, c] = table.Rows[r][c];
cel[r, c].NumberFormat = "#,#";

和NumberFormat的变体为“0,0”,“#0,#0”......

1 个答案:

答案 0 :(得分:2)

使用逗号作为小数点分隔符,您不能使用en-US区域设置。您需要检查以确保Excel知道这一点,或者在将数字发送到Excel之前将其转换为en-US设置。您可以使用.ToString()重载中的函数。

i.ToString(new System.Globalization.CultureInfo("en-US").NumberFormat);