Excel COM中Range的NumberFormat属性



开始用一个字符串数组填充一个Range,后来想把其中是数字的单元格转换为数字后使用公

式计算其值,用类似于下面的语句:

 

Excel.Range rngCell = oSheet.get_Range("A1", mValue);

rngCell.NumberFormat 
= "#,##0.00";

 

其中适用于Range集合的NumberFormat属性用于:返回或设置对象的格式代码。如果指定区

域中的所有单元格包含不同的数字格式,则该值为 Null。Variant 类型,可读写。但是在

上面代码所示的实际操作中,似乎设置了单元格的数字格式,但打开xls文件以后,发现单

元格仍是有“此单元格中的数字为文本格式,或者其前面有撇号。”的错误提示。双击该

单元格后,提示消失,单元格中的数据才由文本格式转换为数字格式。

原来NumberFormat只设置数据显示的样式,而无法改变其数据类型,而且当数据类型不对

时无法完成格式的设置(如无法对文本类型的数字应用"#,##0.00"样式,不过程序不报错

)。直接用

 

rngCell.Value2 = System.Convert.ToDecimal(rngCell.Value2);

 

完成转换,然后再用

 

rngCell.NumberFormat = "#,##0.00";

 

完成操作。

posted @ 2005-09-19 22:13  蜡人张  阅读(6694)  评论(1编辑  收藏  举报