Excel Interop货币格式

我试图在Excel中格式化一个单元格到货币格式。 所以我进入excel,logging一个macros,把普通单元格转换为货币格式,看一下vb脚本,看看它输出如下:

NumberFormat =“$#,## 0.00”

所以我采取这种格式,并将其粘贴到我的代码中,它的工作范围,即时获取货币字符之前,我的Excel表中的值。 然而,单元格的格式仍然是一个数字,excel在单元格的左下angular放置了一个小小的绿色三angular形,告诉我这个格式是不正确的(它应该是货币,但是它的编号是数字)有什么办法在C#中实际设置单元格为“货币”格式?

谢谢

范围对象有一个“样式”属性…智能元数据说,它是“返回一个对象,你可以使用”,但你也可以只是设置该属性的风格。 要获得内置的“货币”风格,请使用(例如)Workbook对象的“样式”属性。

例:

using Excel = Microsoft.Office.Interop.Excel; ... var excel = new Excel.Application(); var wb = excel.Workbooks.Add(); var sheet = (Excel.Worksheet)wb.Sheets[1]; ((Excel.Range)sheet.Cells[3, 4]).Style = wb.Styles["Currency"]; 

事实上,您可以将其设置为Charles所build议的string“Currency”。

 ((Excel.Range)sheet.Cells[3, 4]).Style = "Currency"; 

好吧,我尝试了很多代码,我发现这比其他任何语言/区域设置的作品更好。

numberFormat = @“_- [$$ – 409] *#,## 0.00_; _- [$$ – 409] * – #,## 0.00; _- [$$ – 409] *”“ – ”“ ?? _; – @ “;

不知道我明白你的问题:
在Excel中,包括货币,整数和date/时间的所有数值都保持为浮点双精度值。 值的格式只控制渲染(可见)层中的显示方式。
绿色三angular形testing不包括格式testing。
问题是你正在创build一个文本值而不是数值?