我怎样才能改变使用C#的Excel单元格的文本格式?

我目前正在编写一个应用程序(C#)来生成基于其他报告的Excel文件中的报告。

问题是,一旦从某张表中得到一个号码,并复制到另一张,目标单元格不正确,并且数字不能正确显示。

Eg : Number from source : 14.34 Number on destination : 14.345661 

我如何格式化目标单元格以强制数据格式化与源单元格相同。

谢谢 !

Excel中给定单元格/范围的格式可以通过代码设置。

 public void SetCustomFormat(string format, int r, int c) { ((Excel.Range)xlWks.Cells[r, c]).NumberFormat = format; } 

在你的具体情况下,我相信你需要使用格式“#.00”或“#。##”

下面是我使用的一些代码片段,向您展示格式化单元格的一般模式。 显然,有一些variables声明,但它应该告诉你你需要什么。

 sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Font.Bold = true; sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Interior.Color = Color.Silver.ToArgb(); sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); sheet.get_Range("A" + CompetencyStartRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); 

假设CurrentRowIndex = 1和ColPrefix =“B”,第一行用结果值replacevariables将转化为

 sheet.get_Range("A1", "B1").Font.Bold = true; 

无论如何,你要设置数字格式。 (未来..)

 sheet.Cells[Row, Column].NumberFormat = "0.00"