在没有符号的Open XML中格式化欧洲货币编号格式的代码

时间:2016-12-13 10:14:54

标签: c# excel openxml

  

我的应用程序是在C#MVC中开发的,我正在使用Open XML   在Excel工作表中导出网格数据。网格有各种各样的列   持有金额字段。我在页面上有两个按钮,一个是北方的“NA”   美国格式和另一种格式是欧洲格式的“欧盟”。两个按钮   出口excel表。

  

按下“NA”时,导出excel Amount列值将被转换   如下,工作良好

1000000  ----------> 1,000,000  (Format Code used : #,##0)
  

但是当按下“EU”时,导出的excel数值不是   按期望转换,无效

1000000  ----------> 1000000.0  (Format Code used : #.##0)
  

在Open XML中,我将stylesheet.xml文件配置为

<x:numFmt numFmtId="169" formatCode="[>=1000]#,##0" />   // This works
<x:numFmt numFmtId="170" formatCode="[>=1000]#.##0" />   // This doesn't work
  

有人在这里有任何建议来解决这个问题。我甚至试图改变   Excel表格中的欧洲货币格式   自定义格式选项,但也不起作用。

     

我的预期结果是我无法实现的。

1000000  ----------->  1.000.000

1 个答案:

答案 0 :(得分:1)

无法更改每个工作簿或每个工作表或每个单元格范围的十进制/千位分隔符。

您必须使用[>=1000]#,##0格式。

如何显示取决于系统的区域设置或Excel的分隔符设置(文件/ Excel选项/高级)。

如果NA和EU的导出数据相同,您可以留下一个按钮进行导出。用户通常将分隔符设置为他们习惯使用的分隔符。

https://social.technet.microsoft.com/Forums/office/en-US/eaa4c7f6-197a-4b33-bc5f-20896e5a7e3a/workbook-or-worksheet-specific-decimal-separator?forum=excel