使用SpreadsheetGear将列的数字格式设置为百分比

时间:2013-07-17 10:45:15

标签: formatting excel-formula excel-2010 spreadsheetgear

我正在使用SpreadsheetGear,我想将列的格式设置为%。目前我正在使用以下代码:

 worksheet.Cells[0, index].EntireColumn.NumberFormat = @"##0.00\%;[Red](##0.00\%)";

以上代码应用格式转换: 6 = 6.00% 6.02 = 6.02% .02 = .02%

但问题是当我使用这个值并执行数学运算时,excel会考虑实际值。示例:如果一个单元格显示为20.00%而我将其乘以10则得到200.00。

我想要的是:执行任何数字操作时&列类型定义为%system应该将值除以100,然后它应该执行opeartion。

所以,如果我多了24.00%与10,它应该给我.24。

谢谢

2 个答案:

答案 0 :(得分:1)

如果转义%(\%),Excel只会添加%并且不会调整小数。例如,以下代码

//with escape
cells[0, 0].NumberFormat = @"##0.00\%;[Red](##0.00\%)";
cells[0, 0].Value = 0.24;
//with no escape
cells[1, 0].NumberFormat = @"##0.00%;[Red](##0.00)%";
cells[1, 0].Value = 0.24;
//with no formatting
cells[2, 0].Value = 0.24;

cells[0, 1].FormulaR1C1 = "=RC[-1]*100";
cells[1, 1].FormulaR1C1 = "=RC[-1]*100";
cells[2, 1].FormulaR1C1 = "=RC[-1]*100";

将产生

0.24%   24 //with escape
24.00%  24 //with no escape
0.24    24 //with no formatting

答案 1 :(得分:1)

你的问题是一个数学问题。

24%x 10 = 240%

240%= 2.4

“所以如果我多了24.00%和10,它应该给我.24”

如果你要做的只是显示不同的输出,那么系统应该解释乘以10作为删除%格式。这是因为24%和.24是相同的数字。您基本上是要求机器错误地进行乘法运算。如果这是您的客户真正想要的,这是好的。