【问题标题】:Reading excel file in react在反应中读取excel文件
【发布时间】:2020-05-14 10:48:16
【问题描述】:

我正在尝试读取 excel 文件并使用 XLSX 将其转换为 JSON 格式,但无法做到。当文件在本地机器上时,任何人都可以建议转换方法。

【问题讨论】:

    标签: javascript excel reactjs xlsx


    【解决方案1】:

    通过输入选择本地机器的excel表。之后,
    您的 Excel 数据将显示为 JSON 字符串。

    function Upload() {
        const fileUpload = (document.getElementById('fileUpload'));
        const regex = /^([a-zA-Z0-9\s_\\.\-:])+(.xls|.xlsx)$/;
        if (regex.test(fileUpload.value.toLowerCase())) {
            let fileName = fileUpload.files[0].name;
            if (typeof (FileReader) !== 'undefined') {
                const reader = new FileReader();
                if (reader.readAsBinaryString) {
                    reader.onload = (e) => {
                        processExcel(reader.result);
                    };
                    reader.readAsBinaryString(fileUpload.files[0]);
                }
            } else {
                console.log("This browser does not support HTML5.");
            }
        } else {
            console.log("Please upload a valid Excel file.");
        }
    }
    
    function processExcel(data) {
        const workbook = XLSX.read(data, {type: 'binary'});
        const firstSheet = workbook.SheetNames[0];
        const excelRows = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[firstSheet]);
    
        console.log(excelRows);
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Process Excel File</title>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.0/xlsx.full.min.js"></script>
    </head>
    <body>
    <input class="upload-excel" type="file" id="fileUpload" onchange="Upload()"/>
    </body>
    </html>

    【讨论】:

    • 感谢为我工作!没有使用正则表达式,因为我在输入标签中使用了接受属性。再次感谢您的示例。
    猜你喜欢
    • 2017-05-22
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    相关资源
    最近更新 更多