在javascript中读取excel是将长数字转换为指数

在javascript中读取excel是将长数字转换为指数,javascript,jquery,Javascript,Jquery,我正在使用SheetJs读取excel文件,但问题是它正在将长数字(如3577888990098转换为指数型3.52E+12) 这个问题不是重复的,因为: 文件列可以是随机的,系统不知道哪些是数字,哪些是字符串(按字母顺序),或者两者都不知道 那么如何摆脱这个呢 这是我的密码: function handleFileSelect(evt) { var files = evt.target.files; var i, f; //Loop through files

我正在使用SheetJs读取excel文件,但问题是它正在将长数字(如
3577888990098
转换为指数型
3.52E+12

这个问题不是重复的,因为:

文件列可以是随机的,系统不知道哪些是数字,哪些是字符串(按字母顺序),或者两者都不知道

那么如何摆脱这个呢

这是我的密码:

function handleFileSelect(evt) {
    var files = evt.target.files;
    var i, f;
    //Loop through files
    for (i = 0, f = files[i]; i != files.length; ++i) {
        var name = f.name;
        const reader = new FileReader();
        reader.onload = (evt) => {
            /* Parse data */
            const bstr = evt.target.result;
            const wb = XLSX.read(bstr, {type:'binary'});
            /* Get first worksheet */
            const wsname = wb.SheetNames[0];
            const ws = wb.Sheets[wsname];
            /* Convert array of arrays */
            const data = XLSX.utils.sheet_to_csv(ws, {header:1});
            /* Update state */
            console.log("DATA>>>"+data);
        };
        reader.readAsBinaryString(f);
    }
}
只对数字对象使用toFixed()怎么样

var x = 3577888990098;
var y = '3577888990098';

if(typeof(x) === 'number') {
    x = x.toFixed(); // it will not convert it to exponential.
}

我已通过以下方式解决了这一问题:

//Assuming there will not be any "+" or "E+" in any values of sheet.
if(cell_data[cell_count].indexOf('E+') !== -1 || cell_data[cell_count].indexOf('+') !== -1) {
    console.log(cell_data[cell_count] +" IS EXPONENTIAL");
    fixedNumber = Number(cell_data[cell_count]) // it will not convert exponential to number.
    onerow.push(fixedNumber);
}else{
    onerow.push(cell_data[cell_count]);
}
因为没有JS函数来检查值是否为指数