如何强制Excel插入xs:双值123.45为123.45,而不是12345使用丹麦语区域设置

TL; DR

我有一个模式和<value>123.45</value>的XML文件。 该模式说这是一个双。

如果在导入XML文件时区域格式设置为“丹麦语(丹麦)”,Excel仍然决定将其解释为12345。 (适用于“英语(美国)”)。 Excel决定在丹麦语中,小数点分隔符( 也是XML文件 )是逗号,而不是句号。

有什么办法可以修改XML来强制Excel做正确的事情,并将123.45解释为123.45而不pipe区域设置如何? 我想避免两种XML风格取决于用户的Windows设置。 🙁

还是有没有人有更好的论坛问? 谷歌searchexcel和小数点分隔符给出了很多很多关于如何用','或'。' 显示数字的新手post,而不是如何控制导入,所以我在这里尝试。

细节

(我认为) '。' 是表示XML双精度分隔符的唯一有效方法

我会声称XML中的数字只能使用'。' 作为十进制分隔符,所以“丹麦(丹麦)”下的Excel是错误的 。 逗号(',')作为小数点分隔符永远无效。 我们的模式将value字段设置为“double”,它在https://www.w3.org/TR/xmlschema-2/#double中定义,它表示:

指数和尾数的表示必须遵循整数和小数的词法规则。

https://www.w3.org/TR/xmlschema-2/#decimal说:

十进制有一个由十进制指示符分隔的十进制数字(#x30-#x39)的有限长度序列组成的词法表示。

但是,唉,Excel似乎并不关心这个… :-(或者我误解了一些东西?

我如何将数据导入Excel

我有一个data.xml链接到一个github gist的schema.xsd 。

本质是schema.xsd有:

 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> ...snip... <xs:element name="value" type="xs:double"/> 

当我像这样在Excel 2016中导入它时:

  • 转到数据function区
  • 新的查询
  • 从其他来源
  • 来自networking
  • inputurl
  • (我第一次在Excel中使用了这个URL,我不得不在这里select最具体的主机,你可能不会)
  • select“logging”

现在,如果区域设置的格式为“英语(美国)”,则会看到123.45的值。 如果您的格式为“丹麦语(丹麦)”,您将看到12345的值。:-(

更改区域设置

您可以像这样更改区域设置:

  • 设置
  • 时间和语言
  • (向下滚动)
  • 附加date,时间和地区设置
  • 更改date,时间或数字格式
  • (您现在看到)“区域”设置对话框。

RegionalSettings

在这里你可以改变“格式:”设置。

在该区域对话框中,还有“附加设置”,在那里我们将“十进制符号”和“数字分组符号”设置为“数字”以及“货币”下的类似设置也没有任何影响。 在Excel的“选项”/“高级”中设置“小数点分隔符”和“千位分隔符”也无关紧要。