9

C# を使用ClosedXMLして Excel シートにデータを入力しようとしています。探しているもののほとんどを見つけましたがClosedXML、小数点以下の桁数を処理したり、数値を丸めたりするのに問題があります。

現在cell.Style.NumberFormat.NumberFormatId = 10; 、セルに小数点以下 2 桁のパーセンテージを表示するために使用していますが、小数点以下 1 桁のみを表示したいと思いますClosedXML

次にClosedXML、データを使用せずに直接追加すると、Excel は小数点以下の桁数を切り上げますがClosedXML、データを入力するときにセルが切り上げられません。強制的に丸める方法はありClosedXMLますか?それを手動で行いますか?

4

1 に答える 1

11

この SO Answer: https://stackoverflow.com/a/7900397/541208NumberFormatIdに従って独自のカスタムを作成する必要があるようです。ClosedXMLStyle

var workbook = new XLWorkbook();
var ws = workbook.Worksheets.Add("Style NumberFormat");

var co = 2;
var ro = 1;

// Using a custom format
ws.Cell(++ro, co).Value = "123456.789";
ws.Cell(ro, co).Style.NumberFormat.Format = "$ #,##0.00";

ws.Cell(++ro, co).Value = "12.345";
ws.Cell(ro, co).Style.NumberFormat.Format = "0000";

// Using a OpenXML's predefined formats
ws.Cell(++ro, co).Value = "12.345";
ws.Cell(ro, co).Style.NumberFormat.NumberFormatId = 3;

ws.Column(co).AdjustToContents();

workbook.SaveAs("StylesNumberFormat.xlsx");

したがって、カスタムNumberFormatは、ここにリストされ0.0%ているデフォルトの形式に基づいたものになります。

ws.Cell(ro, co).Style.NumberFormat.Format = "0.0%"; 
于 2012-09-04T17:00:16.890 に答える