我的一位同事有一个XML文档,她在Excel 2007中打开,使用“获取外部数据/从XML数据导入”。
Excel会自动将XML映射到列。但是,有些元素存储数值数据,Excel拒绝将其视为数字:
<SOME_NUMBER>68.12</SOME_NUMBER>
相反,单元格显示“存储为文本的数字”错误。
目前没有XML Schema附加到文档,如果可能的话,我想避免创建一个。还有哪些其他选择?
P.S。:尝试不同的区域设置是不成功的。数据似乎总是被视为文本。
答案 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