我试图用C#和ClosedXML
将数据输入到Excel表格中。我发现大部分的我要找的东西,但我有一些问题让ClosedXML
照顾小数位的数量,以及四舍五入的数量。
我目前使用cell.Style.NumberFormat.NumberFormatId = 10;
获得细胞,以显示与2位小数的百分比,我却想,只显示1位小数,和wiki for ClosedXML
只显示为0或2位小数个百分点。
接下来,当我不使用ClosedXML
并添加数据直接Excel将舍入小数了,但是当我使用ClosedXML
进入细胞不围捕的数据,有没有办法迫使ClosedXML
到轮对我来说,还是我需要做手工?
您似乎有根据本SO答案写自己的自定义NumberFormatId
:https://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%";