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