Excel COM中Range的NumberFormat属性
开始用一个字符串数组填充一个Range,后来想把其中是数字的单元格转换为数字后使用公
式计算其值,用类似于下面的语句:
Excel.Range rngCell = oSheet.get_Range("A1", mValue);
rngCell.NumberFormat = "#,##0.00";
rngCell.NumberFormat = "#,##0.00";
其中适用于Range集合的NumberFormat属性用于:返回或设置对象的格式代码。如果指定区
域中的所有单元格包含不同的数字格式,则该值为 Null。Variant 类型,可读写。但是在
上面代码所示的实际操作中,似乎设置了单元格的数字格式,但打开xls文件以后,发现单
元格仍是有“此单元格中的数字为文本格式,或者其前面有撇号。”的错误提示。双击该
单元格后,提示消失,单元格中的数据才由文本格式转换为数字格式。
原来NumberFormat只设置数据显示的样式,而无法改变其数据类型,而且当数据类型不对
时无法完成格式的设置(如无法对文本类型的数字应用"#,##0.00"样式,不过程序不报错
)。直接用
rngCell.Value2 = System.Convert.ToDecimal(rngCell.Value2);
完成转换,然后再用
rngCell.NumberFormat = "#,##0.00";
完成操作。
Life is like a boat, and I'm at sea.