我正在使用ClosedXML来创建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");
,输出
答案 0 :(得分:0)
非常感谢Jason提供CLOSED XML: Conditional Formatting的链接!
由于这个原因,我设法找到了应用我需要的条件格式的方法:
cell.AddConditionalFormat()
.WhenEquals(
string.Format(
"=TRUNC(${0}${1})",
cell.WorksheetColumn().ColumnLetter(),
cell.WorksheetRow().RowNumber()))
.NumberFormat
.Format = "general\"%\"";
我放弃使用百分比格式说明符,因为它使我除以100。 来自Excel Custom Number Formats:
%百分比。 Microsoft Excel乘以100并添加% 字符。
现在我只是将%
添加为字符串,而不是格式说明符。
因此主数字格式为0.##\"%\"
,但当值的小数部分为零时,我使用条件格式将数字格式替换为%
的常规格式。