2013-02-08 78 views
0

我在使用Microsoft.Office.Interop.Excel将双精度格式的数据导出到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“...

回答

2

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

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