0

在我导出到 excel 的视图中,我显示了这个变量的值

VeryGoodPercentage = subQst.Question.ReponseList.Where(
            r => r.ReponseValeur == 4 &&
            Model.SelectedGroupContactList.Select(c => c.ContaId).Contains(r.ContaId.Value)
            ).ToList().Count() * 100
            /
            denominator;

我这样显示

<td class=xl76 align=right width=69 style='width:52pt'>@Math.Round(VeryGoodPercentage)%</td>

当我显示视图而不导出到 Excel 时,一切正常。但是当我打开导出的 Excel 文件时,我发现该变量的值没有四舍五入。

例如:

在视图中:36%

在excel文件中:0.36

我使用这一行来生成文件:

Response.AddHeader("Content-Type", "application/vnd.ms-excel");   
4

2 回答 2

0

就像声明的那样:

36% 和 0.36 应该是相同的 - 只是 excel 没有将其格式化为百分比,或者确实将 36 解释为百分比 - 这将导致 0.36 作为数字。

我不认为这是一个舍入问题,它是格式化或输入或两者兼而有之。

根据@Math.Round(VeryGoodPercentage)产生的值 - 0.xx 或 XX.XX - 带或不带 % 符号,excel 将对此进行不同的解释。

一些例子:

=0.36 将产生一个数 0.36

=36 将导致数字 36

到目前为止没有惊喜,但现在:

=0.36% 将导致 0.0036

=36% 将导致 0.36

但是那些是公式,现在如果你只是在一个空的“默认”格式化单元格上使用 F2 并写入它:

36% -> 您可以将其格式化为百分比,这会将其显示为 36%,但如果您将其格式化为“默认”,那么它将是数字 0.36!

0.36% -> 表现得像 36%

希望这比它更令人困惑;)祝你好运!

编辑:为了使这一点更加模糊,在我的国家.是数千的符号,所以你必须使用它,

编辑:使用 VBA,您可以将列或单元格设置为使用特定的数字格式,如下所示:

Table1.Columns("A").NumberFormat = "0.00%"
于 2012-09-12T11:52:43.130 回答
0

我终于在这里找到了解决方案

格式化 HTML 表格单元格以便 Excel 格式化为文本?

只需将此 css 参数添加到标签:

mso-number-format:Percent;
于 2012-09-12T22:23:55.653 回答