0

我正在使用 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。

我想要的是:当执行任何数字运算并将列类型定义为 % 系统应该将该值除以 100,然后它应该执行操作。

所以如果我将 24.00% 与 10 相乘,它应该给我 0.24。

谢谢

4

2 回答 2

2

如果您对 % (\%) 进行转义,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
于 2013-07-18T19:54:47.460 回答
1

你的问题是一道数学题。

24% x 10 = 240%

240% = 2.4

“所以如果我将 24.00% 与 10 相乘,它应该给我 0.24”

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

于 2014-09-05T21:00:55.090 回答