如果小数部分为零,如何去除小数点分隔符?
我正在使用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为最后一个带有%
的数字格式。