C#:DataTable 到 Excel(货币格式)

Posted

技术标签:

【中文标题】C#:DataTable 到 Excel(货币格式)【英文标题】:C#: DataTable to Excel (Currency Formatting) 【发布时间】:2016-06-22 13:07:33 【问题描述】:

我有一个小问题,我不知道如何解决它。 DataTable 的来源是 MS SQL Server。 它通过查询从中获取值。

这一切都有效。 Excel 专家也可以。 但我在格式化数字时遇到了问题。

在 DataTabla 中一切正常,因为我已将单元格格式化为:

this.dataGridView1.Columns["Money"].DefaultCellStyle.Format = "C";

这非常有效。 但是当我将它导出到 excel 时,数字看起来像:

9700000

DataTable中的原点编号为:

970,00

所以现在我必须格式化整个单元格。 我这样做:

Range rg = excelSheet.Cells[3, 3];
rg.EntireColumn.NumberFormat = "€ ##0.00";

这行得通。它需要所有单元格并更改格式。 但是格式不正确,我不知道如何指定正确的格式。

请帮帮我。 我需要这个尽快。

提前致谢!

您好, 普卡斯。

【问题讨论】:

根据您的发现,什么是不正确的新格式? DataTable 中格式正确,数字显示为“970,00”。但是,当我使用 DataTable 进行优化时,数字看起来像“9700000”,其中的零比数字包含的多得多,而且没有逗号。这需要解决。 逗号是小数点吗? 是的,逗号是小数点。 Excel 得到错误的数字格式,我不知道为什么。因为在 SQL 表中它是正确的,在 DataTable 中它也是正确的。 【参考方案1】:

问题解决了。 数字在数据库中保存为“文本”,而不是数字。 我刚刚将 excel 格式更改为“文本”,现在它可以工作了。

【讨论】:

以上是关于C#:DataTable 到 Excel(货币格式)的主要内容,如果未能解决你的问题,请参考以下文章

C#怎么讲DataTable导出到Excel

C# Excel 数字格式作为巴西货币

C# ,winform把datatable导出到excel并且在列标题上面增加一行。

更改DataTable某列的值。C#

c#单元格录入时,显示过滤的数据

C#读取excel数据到datatable中