代码之家  ›  专栏  ›  技术社区  ›  MattE

用javascript从excel xlsb文件解析二进制文件为json

  •  0
  • MattE  · 技术社区  · 7 年前

    实际上,我已经让这个工作了一次,但后来我失去了代码,无法使它再次工作。

    我可以很容易地使用$.get(服务器文件路径)获取文件,它给了我一堆看起来很疯狂的数据…我尝试了各种方法以blob和arraybuffer的形式读取二进制数据,但这些方法都不起作用。

    如何将其转换为实际数据,然后转换为类似于d3.parsecsv的json?

    我试过以下方法:

    $.ajax({
            url: url,
            method: 'GET',
            dataType: 'binary',
            processData: false,
            responseType: 'arrayBuffer',
     }).then(function (data) {
           return data
           }, function (error) {
             alertify.error('There was an error retriving the data');
         });
    };
    

    它返回的数据与使用$.get(url)返回的数据相同

    我试过使用sheets.js

    $.get(filePath).then(function(data) {
    XLSX.read(data, {Props: {type: "buffer"}}) 
    })
    

    并出现“无法识别的类型[对象对象]”错误。

    如果使用类型:“binary”则获取“undefined typeerror:无法读取undefined的属性“0”

    我试过用以下方法来操纵它:

                    var buf = new ArrayBuffer(csvData.length * 2);
                    var bufView = new Uint16Array(buf);
                    for (var j = 0; j < csvData.length; j++) {
                        bufView[j] = csvData.charCodeAt(j);
                    }
                    var myData = buf;
    

    我试过使用decoder(“utf-8”),然后使用decoder.decode(csvdata)…。

    什么都没做。

    0 回复  |  直到 7 年前
    推荐文章