JavaScript:EXCEL文件讀取

–>

/* 讀取excel文件 
* 基於xlsx.core.min.js
* 下載地址:https://github.com/SheetJS/js-xlsx/blob/master/dist/xlsx.core.min.js
* ele為input:file文件,onlyone是否只讀取第一個表格
* callback回調函數,第一個參數為JSON數據,第二個為讀取的區域範圍
*/
function readExcel(o,callback) {
    var type=o.type?o.type.toLowerCase():\'array\';
    var output=type=="array"?[]:{}; // 數據存儲
    var ele=o.ele;
    ele.onchange=function(e) {
        var files = e.target.files;
        var fileReader = new FileReader();
        fileReader.onload = function(ev) {
            var area = \'\';// 表格的範圍,用於判斷表頭數量                
            try {
                var data = ev.target.result,
                    workbook = XLSX.read(data,{type: \'binary\'}); // 以二進制流讀取文件
            } catch (e) {
                alert(\'文件类型或数据格式不正确\');
                return;
            }                    
            // 遍歷每張表讀取數據
            for (var sheet in workbook.Sheets) {
                if (workbook.Sheets.hasOwnProperty(sheet)) {
                    area = workbook.Sheets[sheet][\'!ref\'];
                    if(o.onlyone){
                        output = output.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
                        break; //是否只打開第一張表
                    }else{
                        switch (type){
                            case \'array\':
                                output = output.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
                                break;
                            case "object":
                                output[sheet]=XLSX.utils.sheet_to_json(workbook.Sheets[sheet]);
                                break;
                        }
                    }
                }
            }
            callback?callback(output,area):\'\';
        };
        fileReader.readAsBinaryString(files[0]); // 以二進制方式打開文件
    };
}

 

原文链接:https://www.cnblogs.com/mandongpiaoxue/p/10494843.html
本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章