如何使用EPPlus将电子表格单元格的内容设置为会计格式?

3

我需要将某些列的内容设置为会计格式。

尝试如下:

public static readonly string NUMBER_FORMAT_ACCOUNTING = "$";
. . .
bidPriceCell.Style.Numberformat.Format = NUMBER_FORMAT_ACCOUNTING;

...简单地给出了"$"和"-$"作为值。

这个尝试:

public static readonly string NUMBER_FORMAT_ACCOUNTING = "$0.00";
. . .
bidPriceCell.Style.Numberformat.Format = NUMBER_FORMAT_ACCOUNTING;

这段代码给出的值如"$24.09"和"-$0.91"

用户想要美元符号和数值之间有空格,并且负值用括号括起来,例如"$ 24.09"和"$ (0.91)"

我需要为Numberformat.Format属性分配哪个字符串才能实现这一点?

2个回答

3

我从Wildpinkler 这里找到了答案,内容如下:

@"_(""$""* #,##0.00_);_(""$""* \(#,##0.00\);_(""$""* ""-""??_);_(@_)";

...以便以下操作生效:

public static readonly  String NUMBER_FORMAT_ACCOUNTING = @"_(""$""* #,##0.00_);_(""$""* \(#,##0.00\);_(""$""* ""-""??_);_(@_)";
. . .
bidPriceCell.Style.Numberformat.Format = RoboReporterConstsAndUtils.NUMBER_FORMAT_ACCOUNTING;

0

由于我需要欧元货币格式和西班牙语环境(例如1.000.000,00€),我不得不:

  1. 解压一个Excel文件,在其中一个单元格中应用该格式。
  2. 进入xl文件夹并打开styles.xml文件。
  3. numFmts标签之间查找“€”符号以找到该格式。

styles.xml:

<numFmts count="2">
    <numFmt numFmtId="44" formatCode="_-* #,##0.00\ &quot;€&quot;_-;\-* #,##0.00\ &quot;€&quot;_-;_-* &quot;-&quot;??\ &quot;€&quot;_-;_-@_-"/>
</numFmts>

因此,您可以像这样使用此格式:

sheet.Cells["A1"].Style.Numberformat.Format = @"_-* #,##0.00\ ""€""_-;\-* #,##0.00\ ""€""_-;_-* ""-""??\ ""€""_-;_-@_-";

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