浏览器解析excel文件

使用 fileReader 可以搞定

但实际工作中倾向于寻找库来解决, 如
https://github.com/SheetJS/sheetjs

一个小demo

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script src="./xlsx.core.min.js"></script>
    <input type="file" id="excel-file">
    <script>
        const change = function (e) {
            var files = e.target.files;

            var fileReader = new FileReader();
            fileReader.onload = function (ev) {
                try {
                    var data = ev.target.result,
                        workbook = XLSX.read(data, {
                            type: 'binary'
                        }), // 以二进制流方式读取得到整份excel表格对象
                        persons = []; // 存储获取到的数据
                } catch (e) {
                    console.log('文件类型不正确');
                    return;
                }

                // 表格的表格范围,可用于判断表头是否数量是否正确
                var fromTo = '';
                console.log(workbook)
                // 遍历每张表读取
                for (var sheet in workbook.Sheets) {
                    if (workbook.Sheets.hasOwnProperty(sheet)) {
                        fromTo = workbook.Sheets[sheet]['!ref'];
                        persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
                        break; // 如果只取第一张表,就取消注释这行
                    }
                }

                console.log(persons);
            };

            // 以二进制方式打开文件
            fileReader.readAsBinaryString(files[0]);
        };
        const excel = document.querySelector('#excel-file')
        excel.addEventListener('change', change)
    </script>


</body>

</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容