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

How can I set contents of a spreadsheet cell to Accounting format with EPPlus?

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

这次尝试:

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

...简单地给出“$”和“-$”作为值。

这次尝试:

public static readonly string NUMBER_FORMAT_ACCOUNTING = "[=11=].00";
. . .
bidPriceCell.Style.Numberformat.Format = NUMBER_FORMAT_ACCOUNTING;

...给我值,例如“$24.09”和“-$0.91”

用户想要的是美元符号和数值之间的space,以及负值周围的括号,例如“$24.09”和“$(0.91)”

我需要为 Numberformat.Format 属性 分配什么字符串才能工作?

从 Wildpinkler here 找到了答案,即:

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

...以便以下工作:

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

由于我需要欧元和西班牙语言环境的货币格式(例如 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\ ""€""_-;_-* ""-""??\ ""€""_-;_-@_-";