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%

エクセルファイル:0.36

この行を使用してファイルを生成します。

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

2 に答える 2

0

私は最終的にここで解決策を見つけました

HTML テーブル セルを書式設定して、Excel がテキストとして書式設定されるようにしますか?

このcssパラメータをタグに追加するだけです:

mso-number-format:Percent;
于 2012-09-12T22:23:55.653 に答える
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 に答える