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

时间:2009-04-28 11:23:34

标签: xml excel

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

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

<SOME_NUMBER>68.12</SOME_NUMBER>

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

目前没有XML Schema附加到文档,如果可能的话,我想避免创建一个。还有哪些其他选择?

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

4 个答案:

答案 0 :(得分:2)

刚看到这个(旧的)问题,我想我仍然可以回复:

当您说“当前没有附加到文档的XML架构”时,您不太正确。尽管大部分时间都是由Excel隐式创建的,但总有一个XML Schema。在提取和调整这个Schema时 - 这并不太难 - 你可能会得到最简单的结果。

提示如何执行此操作(在此示例中,问题是日期字段): Exporting XML from Excel and Keeping Date Format

答案 1 :(得分:0)

您可以选择单元格,右键单击,格式化单元格,将格式类型更改为“数字”

修改

使用此测试XML文件

<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之外,所有列都显示为数字,因为 初始栏中的文字

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

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

答案 2 :(得分:0)

我认为默认情况下单元格格式适用于整个列,因此在您的示例中可能会有一些商店文本或数字的实例,但是在“1.5”这样的配额中,所以默认的文本格式。

当我测试XML数据导入时,它会将所有文本列格式化为文本,将数字列格式化为常规

答案 3 :(得分:0)

我感到痛苦,多年来我也遇到了同样的问题。这是我提出的唯一解决方案。

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