Excel:映射的XML数据和“存储为文本的数字”错误

我的同事使用“获取外部数据/从XML数据导入”在Excel 2007中打开的XML文档。

Excel自动将XML映射到列。 但是,一些元素存储数值数据,Excel拒绝将其视为一个数字:

<SOME_NUMBER>68.12</SOME_NUMBER> 

相反,单元格显示“存储为文本的编号”错误。

目前没有XML Schema被附加到文档,我想避免创build一个,如果可能的话。 还有什么其他的select?

PS:尝试不同的区域设置是不成功的。 数据似乎总是被视为文本。

刚刚看到这个(老)问题,我想还是可以回复:

当你说“目前没有XML Schema被附加到文档”,你是不正确的。 总是有一个XML Schema,尽pipe大部分时间都是由Excel为你隐式创build的。 在提取和修改这个模式 – 这不是太困难 – 你可能会得到最简单的结果。

提示如何做到这一点(在这个例子中,问题是date字段): 从Excel中导出XML并保留date格式

我相信默认的单元格格式适用于整个列,所以也许在您的示例中存储文本或数字的一些实例,但在配额像“1.5”,所以默认的文本格式。

当我testingXML数据导入时,它会将所有文本列设置为文本,数字列设置为一般

那么你可以select单元格,右键单击,格式化单元格,将格式types更改为“数字”

编辑

使用这个testingXML文件

 <NODES> <A> <B>1.23</B> <C>2.34</C> <D>3.45</D> <SOME_NUMBER>ASDF</SOME_NUMBER> </A> <A> <B>1.23</B> <C>2.34</C> <D>3.45</D> <SOME_NUMBER>4.56</SOME_NUMBER> </A> <A> <B>1.23</B> <C>2.34</C> <D>3.45</D> <SOME_NUMBER>4.56</SOME_NUMBER> </A> </NODES> 

除了第二个SOME_NUMBER之外,所有列都以数字显示,因为初始列中的文本

所以我select这两个单元格,高亮错误框(感叹号),并select第二个选项“转换为数字”

格式单元格的东西似乎有点愚蠢,因为它不会将格式应用于有错误的单元格,直到您单击单元格

我感到你的痛苦,多年来我也有同样的问题。 这是我想出的唯一解决scheme。

 Function ConvertText2Num(RangeToConvert As Range) RangeToConvert.ClearFormats RangeToConvert.TextToColumns End Function