xls(excel)到图表

时间:2011-04-28 10:57:07

标签: jquery xml excel charts xls

我有一个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>

1 个答案:

答案 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_-;_-* &quot;-&quot;??\ _k_r_-;_-@_-

我删除了这个值,它就像一个魅力!查看我的test case on jsFiddle