如果小数部分为零,如何去除小数点分隔符?

我正在使用ClosedXML来创build一个Excel电子表格。 问题发生在格式化单元格时,包含百分比。

我想到的格式是0.##%

小数部分不为零时表示正常,表示为: 1,15% 。 但是当它是整数值时,它使小数点分隔符可见,而隐藏零,例如: 5,%

我怎样才能让它隐藏小数点分隔符?

这是一个小程序,展示了这个问题:

 XLWorkbook wb = new XLWorkbook(); var ws = wb.AddWorksheet("test"); string format = "0.##%"; var cell = ws.Cell(1, 1); cell.SetValue(5.2M / 100); cell.Style.NumberFormat.Format = format; cell = ws.Cell(1, 2); cell.SetValue(5M / 100); cell.Style.NumberFormat.Format = format; wb.SaveAs("test.xlsx"); 

和输出是

在这里输入图像说明

非常感谢Jason提供了CLOSED XML:Conditional Formatting的链接!

感谢这一点,我设法find了我需要应用条件格式的方法:

 cell.AddConditionalFormat() .WhenEquals( string.Format( "=TRUNC(${0}${1})", cell.WorksheetColumn().ColumnLetter(), cell.WorksheetRow().RowNumber())) .NumberFormat .Format = "general\"%\""; 

我放弃使用百分比格式说明符,因为它使我除以100.从Excel自定义数字格式 :

%百分比。 Microsoft Excel乘以100并添加%字符。

现在我只是将%添加为string,而不是格式说明符。

因此,主数字格式为0.##\"%\" ,但是当数值的小数部分为零时,我使用条件格式将数字格式replace为最后一个带有%的数字格式。