zoukankan      html  css  js  c++  java
  • 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]); // 以二進制方式打開文件
        };
    }
  • 相关阅读:
    TensorFlow-Slim 简介+Demo
    AI 常见术语总结
    经典深度学习CNN总结
    YOLO V3 原理
    tf.app.run() 运行结束时,报错:SystemExit exception: no description
    VSCode中相对路径设置问题
    SSD算法原理
    机器学习-交叉熵原理
    tensorflow scope的作用
    水池进水和出水两个线程问题
  • 原文地址:https://www.cnblogs.com/mandongpiaoxue/p/10494843.html
Copyright © 2011-2022 走看看