如何将xlxs文件制作为Blob

时间:2019-01-16 00:06:29

标签: javascript filereader

我试图通过单击按钮而不使用input来加载xlsx文件。文件“ seedFile”在我的项目结构中。当我使用输入时,逻辑运行正确,但是对于内部文件,我遇到了这个问题并遇到了错误。

  var excelToJson =function (file) {
        return new Promise(function (resolve, reject) {
            var xlData = {};
            var reader = new FileReader();
            reader.readAsBinaryString(seedFile);
            reader.onload = function (e) {
                var data = e.target.result;
                var workbook = XLSX.read(data, {
                    type: 'binary'
                });

                 workbook.SheetNames.forEach(function (sheetName) {
                    xlData[sheetName] = 
  XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
                })

            };

            reader.onprogress = function (data) {
                if (data.lengthComputable) {
                    var progress = parseInt(((data.loaded / data.total) * 100), 10);
                    console.log(progress);
                }
            }
            reader.onerror = function (ex) {
                reject(ex);
            };
            reader.onloadend = function () {
                resolve(xlData)
            }
        })

    }
    var handleFiles = function (files) {
        var file = seedFile
        return excelToJson(file)
    }
    $("#seedFile").click(async () => {


    handleFiles(this.files).then(function success(data) {
        console.log(data);
        grid.setData(data.Sheet1).getInstance().loadData()
    }, function error(err) {
        alerts.error(err);
    })
   })

TypeError:无法在'FileReader'上执行'readAsBinaryString':参数1不是'Blob'类型。有什么简单的方法可以在内部将文件制成blob吗?

0 个答案:

没有答案