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 を掛けると、.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 に答える