【问题标题】:Setting number format for a column as percentage using SpreadsheetGear使用 SpreadsheetGear 将列的数字格式设置为百分比
【发布时间】:2013-07-17 10:45:14
【问题描述】:

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

谢谢

【问题讨论】:

标签: formatting excel-formula excel-2010 spreadsheetgear


【解决方案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

【讨论】:

  • 感谢您的精彩回复。您的解决方案解决了一半的问题。虽然它执行正确的计算,但如果我不转义 % 符号,它会将 .24 显示为 24.00%,这是我不想要的。
  • 您希望如何显示 .24?
  • 我想将 24 显示为 24.00% 但是当执行乘法运算时,它应该乘以 0.24 。所以如果列 a1 = 24.00% 和 b1 = 10 并且我将 A1*B1 相乘它应该给我 2.4 (.24*10)
  • 不能通过格式化来改变值。如果您使用 0.24 作为您的值,则上面的代码应该符合您的描述。 0.24 等于 24.00%。如果你使用 24 作为你的值,那是没有意义的。你不能将 24 乘以 10 得到 2.4。
  • 谢谢丹尼尔。我知道这没有多大意义。但这就是我被要求做的。您能否提出建议并解决问题。
【解决方案2】:

你的问题是一道数学题。

24% x 10 = 240%

240% = 2.4

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2018-08-08
    相关资源
    最近更新 更多