通过使用Jquery csv文件读取

时间:2016-03-02 04:52:55

标签: jquery

我正在通过在加载时使用ajax调用来读取csv文件我在mozilla中获得结果但是如果我在chrome中执行相同的链接我收到错误" XMLHttpRequest无法加载文件:/// home / scriplogix7 /下载/ CSV文本文件的上传/ data.csv。交叉源请求仅支持协议方案:http,数据,chrome扩展,https,chrome-extension-resource。"那我怎么能在chrome中处理这个错误。

我的代码是。

$(document).ready(function() {
    // AJAX in the data file
    $.ajax({
        type: "GET",
        url: "data.csv",
        dataType: "text",
        success: function(data) {
            processData(data);
        }
    });

    // Let's process the data from the data file
    function processData(data) {
        var table = $("<table />");
        var rows = data.split(/\r\n|\n/);
        for (var i = 1; i < rows.length - 1; i++) {
            var row = $("<tr />");
            var cells = rows[i].split(",");
            for (var j = 0; j < rows.length; j++) {
                var cell = $("<td />");
                cell.html(cells[j]);
                row.append(cell);
            }
            var usedNames = {};
            $("select[name='company1'] > option").each(function() {
                if (usedNames[this.text]) {
                    $(this).remove();
                } else {
                    usedNames[this.text] = this.value;
                }
            });
            $("select[name='company2'] > option").each(function() {
                if (usedNames[this.text]) {
                    $(this).remove();
                } else {
                    usedNames[this.text] = this.value;
                }
            });
            $("select[name='company3'] > option").each(function() {
                if (usedNames[this.text]) {
                    $(this).remove();
                } else {
                    usedNames[this.text] = this.value;
                }
            });
            $("#region").append("<option value =1> " + cells[0] + " </option>");
            $("#state").append("<option value =1> " + cells[1] + "</option>");
            $("#accname").append("<option value =1>" + cells[2] + "</option>");
            table.append(row);
        }
    }
});

1 个答案:

答案 0 :(得分:0)

添加了解决方案

$("#filename").change(function(e) {
var fileName = $("input#filename").val().split(".").pop().toLowerCase();

if($.inArray(fileName, ["csv"]) == -1) {
alert('Not a csv file, please try to upload a csv file.');
return false;
}
    
if (e.target.files != undefined) {
var filereader = new FileReader();
filereader.onload = function(e) {
	var csvSplitter=e.target.result.split("\n");  //add your separator
	var csvVal=csvSplitter[0].split(",");
	var data="";
	for(var i=0;i<csvVal.length;i++)
	{
		var temp=csvVal[i];
		data=data+" "+temp;
	}
	$("#div").html(data);
};
filereader.readAsText(e.target.files.item(0));

}

return false;

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" name="filename" id="filename">
    <div id="div"></div>