Excel COM中Range的NumberFormat属性

博客讲述在C#里用字符串数组填充Range后,想将数字单元格转换为数字并使用公式计算值。使用NumberFormat属性设置格式时,打开xls文件仍有文本格式错误提示,因该属性只设置显示样式,无法改变数据类型。最后介绍直接转换数据类型再操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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

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

 

None.gifExcel.Range rngCell = oSheet.get_Range("A1", mValue);
None.gif
None.gifrngCell.NumberFormat 
= "#,##0.00";
None.gif

 

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

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

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

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

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

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

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

)。直接用

 

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

 

完成转换,然后再用

 

None.gifrngCell.NumberFormat = "#,##0.00";

 

完成操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值