在我导出到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");
答案 0 :(得分: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
但那些是Formulars,现在如果你只是在一个空的'默认'格式化单元格上使用F2并写入它:
36% - &gt;您可以将其格式化为百分比,将其显示为36%,但如果您将其格式化为“默认”,那么它将是数字0.36!
0.36% - &gt;会表现得像36%
希望这清除的不仅仅是它让人困惑;)祝你好运!
编辑:并使这更加模糊,在我的国家/地区.
是thounsands的符号,因此您必须使用,
代替。
编辑:您可以设置您的列或单元格以使用如下特定数字格式:
Table1.Columns("A").NumberFormat = "0.00%"
答案 1 :(得分:0)
我终于在这里找到了解决方案
Format HTML table cell so that Excel formats as text?
只需将此css参数添加到标记:
mso-number-format:Percent;