在Reactjs

时间:2017-10-24 11:22:31

标签: javascript jquery excel reactjs

在尝试读取Reactjs中的excel文件时,我正在尝试并敲打我的脑袋。

我尝试了多个库,例如Sheetjsexcel-parserexceljs等等(如8-9)库。

我在每个库中都会遇到奇怪和不同的错误。

例如,我正在使用excel-parser并收到以下错误

Module not found: 'child_process'

那是因为它是一个节点模块,并且不能在浏览器中工作。

任何人都知道一些可以在浏览器中使用 reactjs的好的和简单的库吗?

3 个答案:

答案 0 :(得分:7)

我已使用 Sheetjs 的npm版 xlsx 成功阅读了excel文件。

这是代码:

import * as XLSX from 'xlsx';
//f = file
var name = f.name;
const reader = new FileReader();
reader.onload = (evt) => { \\evt = on_file_select event
    /* 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);

答案 1 :(得分:3)

我发现xlsx工作得很好。 xlsx Package

答案 2 :(得分:2)

诺曼·阿里!谢谢
我使用了这段代码

const handleUpload = (e) => {
    e.preventDefault();

    var files = e.target.files, f = files[0];
    var reader = new FileReader();
    reader.onload = function (e) {
        var data = e.target.result;
        let readedData = XLSX.read(data, {type: 'binary'});
        const wsname = readedData.SheetNames[0];
        const ws = readedData.Sheets[wsname];

        /* Convert array to json*/
        const dataParse = XLSX.utils.sheet_to_json(ws, {header:1});
        setFileUploaded(dataParse);
    };
    reader.readAsBinaryString(f)
}