【问题标题】:multiload file xls in SheetJsSheetJs中的多重加载文件xls
【发布时间】:2017-12-11 14:59:45
【问题描述】:

我想尝试多重加载 xls 文件并在 SheetJS 中查看值,但只能在数组 url 中最后工作。

<!doctype html>
<html>
<head>
<title>Excel to JSON Demo</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.10.7/xlsx.full.min.js"></script>
</head>
<body>

<script>
/* set up XMLHttpRequest */

var url = new Array();
url.push("2017_01_Zole.xls");
url.push("2017_03_TK.xls");
url.push("2017_05_Psy.xls");

for(var z = 0; z<url.length; z++){
    var oReq = new XMLHttpRequest();
    oReq.open("GET", url[z], true);
    oReq.responseType = "arraybuffer";
    oReq.onload = function(e) {
      var arraybuffer = oReq.response;

      /* convert data to binary string */
      var data = new Uint8Array(arraybuffer);
      var arr = new Array();
      for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
      var bstr = arr.join("");

      /* Call XLSX */
      var workbook = XLSX.read(bstr, {type:"binary"});

      /* DO SOMETHING WITH workbook HERE */
      var first_sheet_name = workbook.SheetNames[0];
      /* Get worksheet */
      var worksheet = workbook.Sheets[first_sheet_name];
     // jsn = XLSX.utils.sheet_to_json(worksheet,{raw:true});
      console.log(worksheet['F3'].v +' = '+ worksheet['J3'].v);

    };
    oReq.send();
}

</script>
</body>
</html>

在每个循环之后,我想在 console.log 中显示结果。不幸的是,它只显示了最后一个文件中的数据。

【问题讨论】:

    标签: javascript xls


    【解决方案1】:

    从问题到答案的移动解决方案:

    编辑: 问题解决了

    var x = 0;
    function xlsy(urls){
        var oReq = new XMLHttpRequest();
        oReq.open("GET", urls, true);
        //.......
        oReq.send();
        x++;
        if(x < url.length){
            xlsy(url[x])
        }
    }
    xlsy(url[0]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多