我有一个带有架构和<value>123.45</value>
的XML文件。架构说这是双重的。
在导入XML文件时,如果区域格式设置为“丹麦语(丹麦)”,仍然Excel决定将其解释为12345。 (适用于“英语(美国)”)。 Excel决定在丹麦语中,小数点分隔符(也用于XML文件)是逗号,而不是句点。
我有什么方法可以,例如修改XML以强制Excel执行正确的操作并将123.45解释为123.45而不管区域设置如何?我想根据用户的Windows设置避免两种XML风格。 : - (
或者有没有人有更好的论坛要问?谷歌搜索excel和小数点分隔符提供了很多很多关于如何显示数字与','或'。'的新手帖子,而不是如何控制导入,所以我在这里尝试。
我声称XML中的数字可能只使用'。'作为小数点分隔符,因此“丹麦语(丹麦语)”下的Excel 错误。逗号(',')作为小数分隔符永远不会有效。我们的架构将值字段设置为“double”,在https://www.w3.org/TR/xmlschema-2/#double中定义为:
指数和尾数的表示必须遵循整数和小数的词法规则。
https://www.w3.org/TR/xmlschema-2/#decimal说:
decimal有一个词法表示,由一个有限长度的十进制数字序列(#x30-#x39)组成,用句点作为十进制指示符分隔。
但是,唉,Excel似乎并不关心...... :-(或者我误解了什么?
我有一个data.xml链接到schema.xsd中的github gist。
本质是schema.xsd
有:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
...snip...
<xs:element name="value" type="xs:double"/>
当我在Excel 2016中导入此内容时:
现在,如果区域设置的格式为“英语(美国)”,您将看到值123.45。如果您的格式为“丹麦语(丹麦语)”,您会看到值12345.: - (
您可以像这样更改区域设置:
您可以在此处更改“格式:”设置。
在该区域对话框中,还有“其他设置”,我们将“十进制符号”和“数字分组符号”设置为“数字”并且“货币”下的类似设置也无效。在Excel的Options / Advanced中设置“Decimal separator”和“Thousands separator”也没关系。