2017-07-07 71 views
0

我想尝试multiload xls文件和在SheetJS中查看值,但只能在数组url中工作。multiload文件在SheetJs中的xls

<!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中显示结果。不幸的是,它只显示我最后一个文件的数据。

回答

0
从问题

感动的解决方案来回答:

编辑: 问题解决

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]);