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

时间:2016-12-09 15:44:40

标签: xml excel xsd

TL; DR

我有一个带有架构和<value>123.45</value>的XML文件。架构说这是双重的。

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

我有什么方法可以,例如修改XML以强制Excel执行正确的操作并将123.45解释为123.45而不管区域设置如何?我想根据用户的Windows设置避免两种XML风格。 : - (

或者有没有人有更好的论坛要问?谷歌搜索excel和小数点分隔符提供了很多很多关于如何显示数字与','或'。'的新手帖子,而不是如何控制导入,所以我在这里尝试。

详细

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

我声称XML中的数字可能只使用'。'作为小数点分隔符,因此“丹麦语(丹麦语)”下的Excel 错误。逗号(',')作为小数分隔符永远不会有效。我们的架构将值字段设置为“double”,在https://www.w3.org/TR/xmlschema-2/#double中定义为:

  

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

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

  

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

但是,唉,Excel似乎并不关心...... :-(或者我误解了什么?

如何将数据导入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中导入此内容时:

  • 转到数据功能区
  • 新查询
  • 来自其他来源
  • 来自网络
  • 输入url
  • (我第一次使用gist URL在Excel中执行此操作,我必须在此处选择最具体的主机,您可能不会这样做)
  • 选择“记录”

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

更改区域设置

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

  • 设置
  • 时间&amp;语言
  • (向下滚动)
  • 额外的日期,时间和时间区域设置
  • 更改日期,时间或数字格式
  • (您现在看到)“区域”设置对话框。

RegionalSettings

您可以在此处更改“格式:”设置。

在该区域对话框中,还有“其他设置”,我们将“十进制符号”和“数字分组符号”设置为“数字”并且“货币”下的类似设置也无效。在Excel的Options / Advanced中设置“Decimal separator”和“Thousands separator”也没关系。

0 个答案:

没有答案