EPPlus将单元格格式设置为"会计数字"

10
在Excel中,您可以使用以下格式设置数字:

enter image description here enter image description here

我想在EPPlus中使用这种格式来格式化单元格,但我没有看到该属性可用:

enter image description here

我已经查看了其他格式的数量, 但它们都不相同。我还尝试设置"BuildIn"数字(它没有setter,这没有起作用)。我正在尝试使用系统格式,而不是自定义格式。是否可以在EPPlus中使用"会计"格式?


1
为什么不制作一个虚拟电子表格,并将单元格设置为所需格式。然后使用EPP(或VBA)读取该单元格的格式,查看实际格式是什么。这样就不需要猜测了。 - pinkfloydx33
4个回答

19

EPPlus不包含内置于Excel中的数字格式,所以您必须手动设置。

Excel中所有内置格式都有实际的数字格式。例如会计格式为:

-¥* #,##0.00-;¥* #,##0.00_-;-¥* "-"??-;-@-

上述格式可能因地区/设置而异。若要查看任何内置格式的格式,请执行以下操作:

  1. 右键单击单元格并选择格式化单元格

  2. 单击内置格式,例如会计 Image of the Accounting format

  3. 单击自定义以查看先前选定格式的格式 Image of the Accounting format in the Custom category to show actual format

将格式应用于您的单元格:

ws.Cells["A1:A5"].Style.Numberformat.Format = "_-$* #,##0.00_-;-$* #,##0.00_-;_-$* \"-\"??_-;_-@_-";

3
我使用这种格式,模拟了Excel中的“会计科目编号”。
ws.Cells["A1:A5"].Style.Numberformat.Format = "_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)"

0

我不知道会计数字格式是什么样子的,但如果你想让美元符号出现在数字后面,你可以这样做。

ws.Cells["A1:A25"].Style.Numberformat.Format = "#,##0.00 $";

如果您查看电子表格的问题图像,会发现会计格式将美元符号放在数字前面而不是后面。具体来说,它将美元符号放置在单元格的开头。 - LarsTech

0
在我的测试中,迄今为止没有一个答案是完全正确的。单元格内容看起来没问题,但Excel无法识别它们为会计格式,所以它们在格式下拉列表中显示为“自定义”。以下格式字符串被Excel识别为“会计”而不是“自定义”:
const string AccountingFormat = @"_(""$""* #,##0.00_);_(""$""* \(#,##0.00\);_(""$""* ""-""??_);_(@_)";

ws.Cells["A1:A25"].Style.Numberformat.Format = AccountingFormat

(与其他答案的不同之处在于这里引用了美元符号,并且内部括号已经转义。)


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