ClosedXML:用百分比,1位小数的工作和四舍五入?

问题描述 投票:7回答:1

我试图用C#和ClosedXML将数据输入到Excel表格中。我发现大部分的我要找的东西,但我有一些问题让ClosedXML照顾小数位的数量,以及四舍五入的数量。

我目前使用cell.Style.NumberFormat.NumberFormatId = 10;获得细胞,以显示与2位小数的百分比,我却想,只显示1位小数,和wiki for ClosedXML只显示为0或2位小数个百分点。

接下来,当我不使用ClosedXML并添加数据直接Excel将舍入小数了,但是当我使用ClosedXML进入细胞不围捕的数据,有没有办法迫使ClosedXML到轮对我来说,还是我需要做手工?

c# rounding decimal closedxml
1个回答
9
投票

您似乎有根据本SO答案写自己的自定义NumberFormatIdhttps://stackoverflow.com/a/7900397/541208,或者,在ClosedXML docs,它说,添加一个新的Style

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%listed here:

ws.Cell(ro, co).Style.NumberFormat.Format = "0.0%"; 
© www.soinside.com 2019 - 2024. All rights reserved.