使用EPPlus将Excel单元格转换为百分比

13

我想将数值转换为两位小数。我正在使用 EPPlus,如果值为66.6666667,我希望显示为66.66%。 我尝试了以下代码,但它没有起作用。

   foreach (var dc in dateColumns)
   {
       sheet.Cells[2, dc, rowCount + 1, dc].Style.Numberformat.Format = "###,##%";
   }
请帮忙。
5个回答

23
我找到了它! 我尝试过
 foreach (var dc in dateColumns)
  {
    sheet.Cells[2, dc, rowCount + 1, dc].Style.Numberformat.Format ="#0\\.00%";
   }

4
仅当值为"0.00%"时才可正常运作,因此请勿包含'#'和''。否则,该值将被除以100,导致存储和显示的值不同。 - MovGP0

20

正确的公式如下:

 foreach (var dc in dateColumns)
  {
    sheet.Cells[2, dc, rowCount + 1, dc].Style.Numberformat.Format ="#0.00%";
  }

"#0\\.00%" 中的双斜杠在您尝试扩展小数位时可能导致非常不寻常的数字


2
唯一需要注意的是,如果您已将数值表示为百分比,那么您需要将其除以100,以便在Excel中打开表格时显示正确。 - PBo

3
据我所查,您通过EPP设置的格式只是普通的Excel单元格格式。
在我的情况下,this非常有帮助。

0
sheet.Cells[1, 1, row, col].Style.Numberformat.Format = "##0.00\\%;[Red]-##0.00\\%";

这对我来说起作用了。


0

如果你想在单元格范围内进行操作,可以使用

using (ExcelRange Rng = wsDashboard.Cells["B6:J6"])
{
    Rng.Style.Numberformat.Format = "#0\\.00%";
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接