打开excel文件并导出到json

Ton*_*bet 4 javascript excel jquery json

我想<select></select>根据具有以下格式的Excel文件动态创建(或者可能是具有自动完成的文本框)输入文件:

Airport Code    Airport Name    Language Code
 AAC             Al Arish                                            en
 AAE             Annaba Les Saline                                   en
 AAH             Aachen Merzbruck                                    en
 AAL             Aalborg                                             en
 AAN             Al Ain                                              en
 AAQ             Anapa                                               en
 AAR             Aarhus Tirstrup                                     en
 AAU             Asau                                                en
Run Code Online (Sandbox Code Playgroud)

(还有更多)

我需要打开.xls文件并读取每一行,以便我可以将两个第一列作为锚点和值.

这是我发现的最相关的内容,链接被破坏如何使用JavaScript读取和写入文件

有没有一个适用于IE7的解决方案

小智 6

如果您的文件位于http服务器上,则可以使用AJAX读取它.

我们首先定义一些常量:

var CSV_URL = "http://server.domain/path/file.csv";
var CSV_COLUMN = ';'
var CSV_ROW = '\n'
Run Code Online (Sandbox Code Playgroud)

CSV_URL是CSV文件的网址.

CSV_COLUMN是分隔列的分隔符.

CSV_ROW是分隔行的分隔符.


现在我们需要进行AJAX查询以获取CSV数据内容.我正在使用jQuery来执行AJAX请求.

$.get (CSV_URL, null, function (data) {
    var result = parse_csv (data);
    var e = create_select (result);
    document.body.appendChild (e);
});
Run Code Online (Sandbox Code Playgroud)

好的,现在我们需要解析数据......

function parse_csv (data) {
    var result = new Array();
    var rows = data.split (CSV_ROW);

    for (var i in rows) {
        if (i == 0) continue; // skip the first row

        var columns = rows[i].split (CSV_COLUMN);
        result.push ({ "value": columns[1], "text": columns[0] });
    }

    return result;
}
Run Code Online (Sandbox Code Playgroud)

...并创建选择:

function create_select (data) {
    var e = document.createElement ('select');

    for (var i in data) {
        var option = document.createElement ('option');

        option.value = data[i].value;
        option.innerHTML = data[i].text;

        e.appendChild (option);
    }

    return e;
}
Run Code Online (Sandbox Code Playgroud)

除AJAX请求之外的所有内容都是纯JavaScript.如果由于某种原因你不想要jQuery,你也可以在纯JS中编写你的AJAX请求.