我有一个excel file(xls),我想在网页上的图表中显示这些数据。
我可以将文件保存为Excel中的xml document,但我现在不知道如何解析它。
$(document).ready(function() {
$.ajax({
url: "data.xml",
type: "GET",
dataType: "xml",
success: function(xml){
parseXml(xml);
}
});
});
function parseXml(xml)
{
var xml = $(xml);
var data = xml.find("Worksheet").children('table').children('row').children('Cell');
console.log(data);
}
这种做法“有点”,但要获得正确的价值观很难。
例如,如果我想在xml文档中获得如下所示的Net Sales:
<Row>
<Cell ss:StyleID="s44">
<Data ss:Type="String">Net sales</Data>
</Cell>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">11779.0</Data>
</Cell>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">10996.0</Data>
</Cell>
<Cell ss:StyleID="s46"/>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">10222.0</Data>
</Cell>
<Cell ss:StyleID="s46"/>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">11636.0</Data>
</Cell>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">10918.0</Data>
</Cell>
<Cell ss:StyleID="s42"/>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">10231.0</Data>
</Cell>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">9649.0</Data>
</Cell>
<Cell ss:StyleID="s46"/>
<Cell ss:StyleID="s45">
<Data ss:Type="Number">10871.0</Data>
</Cell>
</Row>
答案 0 :(得分:2)
从jQuery 1.5开始,内置支持将XML字符串解析为jQuery对象。只需使用jQuery.parseXML
,然后就可以查询生成的jQuery对象,就好像它是一个DOM。
由于原始策略相同(请参阅HTTP access control on MDC),我无法进行跨浏览器GET,因此我必须从XML文件中复制源代码并将其放在textarea中。
可能是因为我得到了一个解析错误而丢失了你在那里的任何转义。属性ss:Format
包含无效值:
_-* #,##0.00\ _k_r_-;\-* #,##0.00\ _k_r_-;_-* "-"??\ _k_r_-;_-@_-
我删除了这个值,它就像一个魅力!查看我的test case on jsFiddle。