XLS (Excel) в чартах - PullRequest
       7

XLS (Excel) в чартах

0 голосов
/ 28 апреля 2011

У меня есть файл Excel (xls), и я хочу показать эти данные в виде диаграмм на веб-странице.

Я могу сохранить файл как XML-документ в Excel, но я не знаю, как его проанализировать.

$(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:

    <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 Ответ

2 голосов
/ 28 апреля 2011

Начиная с jQuery 1.5, есть встроенная поддержка парсинга строки XML в объект jQuery. Просто используйте jQuery.parseXML, а затем вы можете запросить результирующий объект jQuery, как если бы это был DOM.

Из-за той же политики происхождения (см. Контроль доступа HTTP на MDC ) мне не разрешили выполнять кросс-браузерный GET, поэтому мне пришлось скопировать исходный код из вашего XML-файла и поместить его в текстовой области.

Может быть, все ваши побеги были потеряны, потому что я получаю ошибку разбора. Атрибут ss:Format содержит недопустимое значение:

_-* #,##0.00\ _k_r_-;\-* #,##0.00\ _k_r_-;_-* &quot;-&quot;??\ _k_r_-;_-@_-

Я удалил это значение, и оно сработало как шарм! Смотрите мой контрольный пример на jsFiddle .

...