Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用js-xlsx解析Excel工作表_Javascript_Excel_Parsing - Fatal编程技术网

Javascript 用js-xlsx解析Excel工作表

Javascript 用js-xlsx解析Excel工作表,javascript,excel,parsing,Javascript,Excel,Parsing,我试图解析用户指定目录中的所有excel文件,但我使用的js xlsx库似乎需要手动导航 var url = "/test-files/test.xlsx"; <-------- Located in the project directory var oReq = new XMLHttpRequest(); oReq.open("GET", url, true); oReq.responseType = "arraybuffer"; oReq.onload = function(e)

我试图解析用户指定目录中的所有excel文件,但我使用的js xlsx库似乎需要手动导航

var url = "/test-files/test.xlsx"; <-------- Located in the project directory
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";

oReq.onload = function(e) {
    var arraybuffer = oReq.response;

    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("");

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

oReq.send();

var url=“/test files/test.xlsx” 对于那些好奇的人,我想出了一个解决办法 要动态创建指向给定fileEntry对象的路径,必须首先将其转换为Blob:

fileEntryObject.file(function(file) {});
然后将其转换为window.URL,这样您的项目就可以访问所需文件的可读路径:

var newPath = window.URL.createObjectURL(file);
因此,即使您不知道如何从项目导航到文件,您也可以在函数中将其用作常规路径:

fileEntryObject.file(function(file) {
        var newPath = window.URL.createObjectURL(file);
        var oReq = new XMLHttpRequest();
        oReq.open("GET", newPath, true);
        oReq.responseType = "arraybuffer";
            oReq.onError = function(e) {
            console.log('Error in reading excel file');
        };
            oReq.onload = function(e) {
            var arraybuffer = oReq.response;
            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("");
                var workbook = XLSX.read(bstr, {
                type: "binary"
            });

            var sheet_name = workbook.SheetNames[1];
            var worksheet = workbook.Sheets[sheet_name];
                self.parseReceive(worksheet, callback);
            // self.parseReceive(worksheet);
        };
    oReq.send();
});

如果要缩短此代码,可以使用
let bstr=new Uint8Array(oReq.response)在一行中获得一个二进制字符串。reduce((string,el)=>string+string.fromCharCode(el),“”)
您知道解析excel文件后数组的名称是什么或如何访问它吗?