如何在javascript文件中编写类

时间:2019-02-15 08:55:15

标签: javascript excel angular class import

我使用JavaScript中的类从excel文件中获取JSON数据,我将创建该类,并且我的数据将使用HTML打印在屏幕上。我写的大部分内容都无效。键入JavaScript类并创建对象时出现错误。

class ExcelModal {
    name : string;
    id : string;
    constructor(id, name) {
        this.name = name;
        this.id = id;
    }
}
function  ExcelToJSON () {
    var list = new ExcelModal();
    document.getElementById("upload").addEventListener("change", handleFileSelect, false);
    this.parseExcel = function(file) {
        var reader = new FileReader();
        reader.onload = function(e) {
            var data = e.target.result;
            var workbook = XLSX.read(data, {
                type: "binary"
            });
            workbook.SheetNames.forEach(function(sheetName) {
                // Here is your object
                var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
                var json_object = JSON.stringify(XL_row_object);
                list = JSON.parse(json_object);

                console.log( list );
                jQuery().val( json_object );

                list.forEach( function (obj){
                    $('#id).append('<input name="accesories" type="checkbox" value="'+obj.id+'"/> '+obj.name+'<br/>');
                });
            })
        };

        reader.onerror = function(ex) {
            console.log( ex);
        };

        reader.readAsBinaryString(file);
    };

};
function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object
    var xl2json = new ExcelToJSON();
    xl2json.parseExcel(files[0]);

}

2 个答案:

答案 0 :(得分:0)

ExcelModal初始化时需要2个参数

var list = new ExcelModal('id', 'name');

答案 1 :(得分:0)

  

您可能已经将Typescript与angular一起使用了。请确保仅将两个参数传递给ExcelModal类的实例。

如果您使用的是JavaScript,只需删除 ExcelModal 类属性idname(请参阅 this < / strong>表示 为什么? ),因此您的JS类就像-

class ExcelModal {
    constructor(id, name) {
        this.name = name;
        this.id = id;
    }
}

let em = new ExcelModal(1, 'abcd');
console.log(em.name);