侧边栏壁纸
  • 累计撰写 41 篇文章
  • 累计创建 34 个标签
  • 累计收到 0 条评论
隐藏侧边栏

JavaScript解析Excel文件

LonelySmile
2024-03-17 / 0 评论 / 0 点赞 / 60 阅读 / 1,402 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-03-17,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
  1. 导入xlsx工具包

     <script src="/js/xlsx.min.js"></script>
    
  2. 上传文件

       <el-upload class="upload" ref="excelUpload" style="margin-left:10px" :show-file-list="false"
                                action="#" :auto-upload="false" :multiple="false"
                                accept="application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                                :on-change="importExcel" :limit="1">
                                <el-button size="mini" type="primary" plain>数据导入</el-button>
                            </el-upload>
    
  3. 解析

    // excel导入
    importExcel(param) {
        let _this = this;
        _this.file2Xce(param).then(item => {
            if (item && item.length > 0) {
                // xlsxJson就是解析出来的json数据,数据格式如下
                // [{sheetName: sheet1, sheet: sheetData }]
                if (item[0] && item[0].sheet && item[0].sheet.length) {
                    _this.excelData = item[0].sheet  //把数据塞到表格预览
                }
            }
            _this.$refs.excelUpload.clearFiles();
        }).catch((err) => {
            console.log(err)
        });
    },
        /**
                 * 解析文件
                 * @param {Object} file
                 */
        file2Xce(file) {
            return new Promise(function (resolve, reject) {
                const reader = new FileReader();
                reader.onload = function (e) {
                    const data = e.target.result;
                    this.wb = XLSX.read(data, {
                        type: "binary"
                    });
                    const result = [];
                    this.wb.SheetNames.forEach(sheetName => {
                        result.push({
                            sheetName: sheetName,
                            sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName])
                        });
                    });
                    // console.log("解析")
                    // console.log(result)
                    resolve(result);
                };
                reader.readAsBinaryString(file.raw);
            });
        },
    
0

评论