导出双精度到Excel-十进制分隔符问题

本文关键字:十进制 分隔符 问题 Excel- 双精度 | 更新日期: 2023-09-27 17:58:28

使用Microsoft.Office.Interop.Excel.将双格式数据导出到Excel时遇到问题

像这样的数字

-4965454324566(使用逗号作为小数分隔符)

在代码中导出为

-4965454324566

没有逗号、点或任何十进制分隔符。

只有像这样的数字

0988946533164

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

我尝试过使用NumberFormat,但我没有任何整数或十进制小数位数的限制,也就是说,我想要像123456789或123456789这样的数字。所以我不知道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"。。。

导出双精度到Excel-十进制分隔符问题

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

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