素材巴巴 > 程序开发 >

Js-Xlsx Excel上传插件的使用 Excel导入数据

程序开发 2023-09-09 19:01:50

由于使用该该插件的频率较高,经常使用起来还要去以前的项目中寻找demo,所以做个记录

个人经常用此插件进行批量导入数据的业务操作

所需插件Js-xlsx

我提供的下载资源属于优化版本(曾经遇到bug),使用过程中,自行处理好Excel数据格式

声明:如遇到bug,请自行判断

Demo



 


                $(function () {
            $("#fileUploader").change(function (e) {
                readExcel(e);
            })
        });


        function readExcel(e) {

            //表格导入
            var that = this;
            const files = e.target.files;
            if (files.length <= 0) {
                //如果没有文件名
                return false;
            } else if (!/.(xls|xlsx)$/.test(files[0].name.toLowerCase())) {
                this.$Message.error("上传格式不正确,请上传xls或者xlsx格式");
                return false;
            }
            const fileReader = new FileReader();
            fileReader.onload = ev => {
                try {
                    const data = ev.target.result;
                    const workbook = XLSX.read(data, {
                        type: "binary"
                    });

                    const wsname = workbook.SheetNames[0]; //取第一张表
                    const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]); //生成json表格内容
                    that.filedata = []; //清空接收数据

                    for (var i = 0; i < ws.length; i++) {

                        if (i <= 1) {

                            //此处进行了自定义主要是前两行是表头
                            continue;
                        };

                        if (ws[i].Name == "" && ws[i].SalePrice == "") {
                            continue;
                        }

                        var salePrice = 0;

                        if (ws[i].SalePrice != "" && parseFloat(ws[i].SalePrice) != NaN) {
                            salePrice = parseFloat(ws[i].SalePrice);
                        }

                        var sheetData = {
                            Code: ws[i].Code,
                            Name: ws[i].Code,
                            SpecificationsModel: ws[i].SpecificationsModel,
                            ProductUnitCode: ws[i].ProductUnitCode,
                            D_ProductTypeCode: ws[i].D_ProductTypeCode,
                            D_ProductBrandCode: ws[i].D_ProductBrandCode,
                            ProductPriceName: ws[i].ProductPriceName,
                            SalePrice: salePrice,
                            IsStandardPrice: ws[i].IsStandardPrice,
                        };

                        that.filedata.push(sheetData);

                    }

                    $("#hidJson").val(JSON.stringify(filedata));
                } catch (e) {
                    return false;
                }
            };
            fileReader.readAsBinaryString(files[0]);
        }

//Excel格式,第一行使用的中文的话,解析里面会报错

 


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。